我一直使用 Identity Server 4.0 作为我的 OpenId Connect 提供者。我可以使用 Redirect Uris 和 Post Logout Redirect Uris 在 Identity Server 中设置客户端。我也一直在使用 angular-auth-oidc-client 通过身份服务器登录/注销。
登录时,我的客户端库(angular-auth-oidc-client)在调用授权端点时确实传入了配置中指定的正确 Uri。当我尝试使用不正确的重定向 Uri 登录时,Identity Server 会检查并验证客户端提供的 Uri 是该客户端接受的 Uri 之一,如果不是(如预期的那样)则显示错误。
当谈到注销时,似乎没有内置。我的客户端库在调用注销端点时不发送 PostLogoutRedirectUri。Identity Server 用于注销的示例代码不包括要传入的任何 URI。它的示例代码只是从数据库中获取 Post Logout Redirect Uri 值并在注销页面上创建一个链接。示例代码不仅不允许用户为注销指定重定向 Uri,而且它不做任何检查,甚至不做重定向(授予它唯一的示例代码,我可以更改它)。我希望我的客户端库在成功注销后传递 Uri,并且身份服务器重定向到 Uri,只要它是客户端的“批准”Uri 之一。
我的问题是: PostLogoutRedirectUri 的意义何在?我使用的 Identity Server 和 OIDC 客户端库都没有做任何有用的事情。对于用于将此 Uri 传递给 Identity Server 的查询字符串参数的名称,似乎甚至没有达成一致的约定。然而,Identity Server 和 Angular 客户端库似乎都支持它。那么这件事有什么意义呢?是以后会添加或充实的东西吗?我是否错过了一些描述其用途和使用方法的文档?