基于HTTP的登出

2017-02-25  本文已影响143人  灭蒙鸟

layout: docs-default

服务器端web应用的登出支持

HTTP-based logout 规格定义了OpenID Connect如何通知客户端应用 用户已经登出啦。这个通过创建一个<iframe>到登陆的客户端应用已知的"logout URI"。这些<iframe>被渲染在OpenID Connect的"登出"页面。这种方式允许<ifarme>执行在用户浏览器上下文,所以客户端应用可以清楚用户会话(不管这个具体指什么).
要在客户端应用启用,这个Client配置必须设置LogoutUri属性。默认情况,用户的会话ID会做为查询字符串sid来允许客户端应用认证这个登出通知。这个sid参数可以通过设置客户端配置的LogoutSessionRequired为false来禁用。

一个MVC应用需要向下面代码来处理登出请求:

public void SignoutCleanup(string sid)
{
    var cp = (ClaimsPrincipal)User;
    var sidClaim = cp.FindFirst("sid");
    if (sidClaim != null && sidClaim.Value == sid)
    {
        Request.GetOwinContext().Authentication.SignOut("Cookies");
    }
}

要使用这种登出通知,请研究 MVC 应用的例子这里.

上一篇 下一篇

猜你喜欢

热点阅读