美文网首页
基于HTTP的登出

基于HTTP的登出

作者: 灭蒙鸟 | 来源:发表于2017-02-25 18:14 被阅读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 应用的例子这里.

相关文章

网友评论

      本文标题:基于HTTP的登出

      本文链接:https://www.haomeiwen.com/subject/xrlmyttx.html