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 应用的例子这里.