悄悄地从 IdentityServer 注销?

Rya*_*yan 2 c# oauth-2.0 xamarin.forms identityserver4

我正在使用 IdentityServer 4 实例中的 OAuth2。基于此示例,我能够登录并调用服务器托管的 API。

如何在OidcClient不显示提示用户确认注销的 Web 视图的情况下执行注销?

目前,我正在使用以下代码注销,但库仍然显示带有注销提示的 webview。理想情况下,我希望只处理注销而不显示任何其他弹出窗口:

await _client.LogoutAsync(
    new LogoutRequest {
        BrowserDisplayMode = DisplayMode.Hidden,
    });
Run Code Online (Sandbox Code Playgroud)

Kir*_*kin 6

包含LogoutRequest一个IdTokenHint用于此目的的属性。如果您想禁用注销提示,则需要将其设置为当前用户的 id_token。请参阅此处的 OIDC 规范:

id_token_hint

受到推崇的。先前颁发的 ID 令牌传递到注销端点,作为有关最终用户当前与客户端进行身份验证的会话的提示。这用作 RP 请求 OP 注销的最终用户身份的指示。当 OP 用作 id_token_hint 值时,无需将其列为 ID 令牌的受众。

通过在该请求中提供 id_token,权威机构可以确定注销请求本身是真实的,因此认为不需要提示用户。

如果您没有 id_token,则需要在首次授权用户时请求它,然后保留它以供以后使用。