首页 文章

带有IdentityServer3的Oidc-client - Angular2,如何正确注销和登录

提问于
浏览
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() . 这工作,它重定向 . 但除非我关闭页面,否则令牌仍然存在 .

UPDATE: My testing team has told me that this issue is specifically with Chrome.

1 回答

  • 1

    要清除UserManager管理的状态,请调用 removeUser . 当你触发注销时,应该为你调用,所以我没有'm curious why it' . 检查日志?

相关问题