我有一个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();
}
但这没什么区别。
答案 0 :(得分:0)
我需要修复两个问题才能使其正常工作。
在IdentityServer的AccountOptions类中,我必须将此属性设置为true而不是false:
public static bool AutomaticRedirectAfterSignOut = true;
接下来,在IdentityServer客户端配置中,我必须定义注销后重定向uri:
PostLogoutRedirectUris = new List<string> {"http://...."}
做到了。我不必在Angular客户端中进行任何更改。