2

这是一些背景,我使用的是隐式流,我的令牌是 JWT。要注销,我使用的是方法调用signoutRedirectCallback。

我希望能够正确注销。这样我就可以以其他用户身份登录。这样做时,我仍然拥有最后一个用户的令牌吗?有没有办法完全注销用户,使其没有最后一个用户的令牌?由于某种原因,令牌仍然存在。似乎真正注销的唯一方法是关闭浏览器页面并且 identityserver3 上的 cookie 被删除/删除?

这也可以回答我的另一个问题。如果用户单击主网格页面上的超链接并打开一个新选项卡(例如详细信息页面),如果用户在新选项卡(详细信息页面)上注销,则仍记录主网格页面(旧选项卡)在?同样,我没有完全退出也是同样的问题。

谁能给我一些关于如何正确注销以删除 identityserver3 上的 cookie 的指导?所以它是一个干净的石板。令牌仍然存在。谢谢你。

//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()。这有效并且它重定向。但是除非我关闭页面,否则令牌仍然存在。

更新:我的测试团队告诉我这个问题专门针对 Chrome。

4

1 回答 1

2

要清除由 UserManager 管理的状态,请调用removeUser. 这应该在您触发注销时为您调用,所以我很好奇为什么它不是。检查日志?

于 2017-01-03T19:23:58.057 回答