这是一些背景知识,我正在使用隐式流,我的 token 是 JWT。要注销,我使用方法调用signoutRedirectCallback。
我希望能够正确注销。这样我就可以以不同的用户身份登录。这样做时,我仍然拥有上一个用户的 token 吗?有没有办法完全注销用户,使其不具有最后一个用户的 token ?由于某种原因, token 仍然存在。看来真正注销的唯一方法是当浏览器页面关闭并且identityserver3上的cookie被删除/删除时?
这也可以回答我的另一个问题。如果用户单击主网格页面上的超链接并打开一个新选项卡(例如详细信息页面),如果用户在新选项卡(详细信息页面)上注销,则仍会记录主网格页面(旧选项卡)在?同样,这也是我没有完全注销的问题。
任何人都可以给我一些关于如何正确注销以删除 Identityserver3 上的 Cookie 的指导吗?所以这是一个干净的石板。 token 仍然存在。谢谢。
//Here is the code. In my main component I have a menuclick event and this works:
public MenuClick(event, item)
{
if (item === "signOut")
{
this.signOut();
}
}
public signOut()
{
this._LoginService.logOut();
}
//Here is the LoginService that calls the oidc-client method:
public logOutCall(): Observable<boolean>
{
return Observable.fromPromise(new Promise<boolean> (
resolve =>
{
this._oidcService.logOut();
resolve(true);
}
));
}
this._oidcService.logOut() 调用实际的oidc-client 方法signoutRedirectCallback()。这有效并且可以重定向。但除非我关闭页面,否则 token 仍然存在。
更新:我的测试团队告诉我,此问题专门针对 Chrome。
最佳答案
要清除 UserManager 管理的状态,请调用 removeUser
。当您触发注销时,应该调用此方法,所以我很好奇为什么不这样做。检查日志?
关于angular - Oidc-client 与 IdentityServer3 - Angular2,如何正确注销和登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41449064/