我正在使用IdentityServer 4实例中的OAuth2。基于this example,我可以登录并调用服务器托管的API。
我如何从OidcClient
注销,而不显示Webview提示用户确认注销?
目前,我正在使用以下代码注销,但是该库仍显示带有注销提示的Web视图。理想情况下,我只想处理注销而不显示任何其他弹出窗口:
await _client.LogoutAsync(
new LogoutRequest {
BrowserDisplayMode = DisplayMode.Hidden,
});
答案 0 :(得分:3)
LogoutRequest
为此包含一个IdTokenHint
属性。如果要禁用注销提示,则需要将其设置为当前用户的id_token。参见here的OIDC规范:
id_token_hint
推荐。先前发出的ID令牌传递给注销端点,作为有关最终用户当前与客户端的已认证会话的提示。这用作指示RP正在请求OP注销的最终用户的身份。当OP用作id_token_hint值时,无需将其列为ID令牌的受众。
通过向id_token提供此请求,授权机构可以确保注销请求本身是真实的,因此认为不需要提示用户。
如果您没有id_token,则在首次授权用户时需要请求它,然后保留它以备后用。