IdentityServer4和Angular:使用隐式流注销

时间:2019-02-20 21:40:47

标签: c# angular asp.net-core identityserver4

我有一个Angular应用程序,该应用程序与具有隐式流和angular-oauth2-oidc库的IdentityServer4集成。

一切似乎都正常,我可以登录;并且访问令牌可用。

如果我单击注销按钮,则将按以下方式处理它:

logout() {    
   this.oauthService.logOut();    
}

...然后我被重定向到Identity Server,在那里它询问我是否真的要注销。

我的问题是我是否可以绕过该提示?我的意思是,如果要单击该按钮并将其重定向回Angular站点,而无需确认,我想完全注销?

如何实现?

编辑:如其他答案中所述,如果您传递id_token_hint,它应该可以工作。所以我做到了:

logout() {
    this.oauthService.customQueryParams = {
        'id_token_hint': this.oauthService.getIdToken()
    };    
    this.oauthService.logOut();    
}

但这没什么区别。

1 个答案:

答案 0 :(得分:0)

我需要修复两个问题才能使其正常工作。

在IdentityServer的AccountOptions类中,我必须将此属性设置为true而不是false:

public static bool AutomaticRedirectAfterSignOut = true;

接下来,在IdentityServer客户端配置中,我必须定义注销后重定向uri:

PostLogoutRedirectUris = new List<string> {"http://...."}

做到了。我不必在Angular客户端中进行任何更改。