2017-01-03 66 views
1

這裏有一些背景,我使用隱式流和我的令牌是智威湯遜。要註銷,我使用方法調用signoutRedirectCallback。Oidc客戶端與IdentityServer3-Angular2,如何註銷和正確登錄

我希望能夠正確註銷。這樣我可以以不同的用戶身份登錄。在這樣做的時候,我仍然有來自最後一位用戶的令牌?有沒有辦法將用戶完全註銷,以便它沒有最後一個用戶的令牌?該令牌仍然因爲某種原因而持續存在。看起來,真正註銷的唯一方法是關閉瀏覽器頁面並且Identityserver3上的Cookie被刪除/刪除?

這也可以回答我的其他問題。如果用戶單擊主網格頁面上的超鏈接並打開新選項卡(例如詳細信息頁面),如果用戶註銷新選項卡(詳細信息頁面),主網格頁面(舊選項卡)仍會記錄在?再次,這是我沒有完全註銷的問題。

任何人都可以給我一些關於如何正確註銷以刪除身份服務器3上的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-客戶方法signoutRedirectCallback()。這工作,它重定向。但是,除非我關閉頁面,否則令牌仍然存在。

更新:我的測試團隊告訴我這個問題是專門針對Chrome的。

+0

由於某種原因,您沒有正確地做到這一點,如果不查看源代碼,就不可能提供任何建議。 –

+0

羅馬,我基本上調用上面提到的方法,然後它重定向到登錄頁面。 :/ – LVDev

+0

在做重定向之前,無效會話 –

回答

1

要清除UserManager管理的狀態,請致電removeUser。當你觸發註銷時,應該爲你調用,所以我很好奇它爲什麼不是。檢查日誌?

+0

Brock,我已經完成了這兩個,手動並讓signoutRedirectCallback()調用removeUser()。我檢查了日誌,並調用removeUser,沒有任何錯誤。該令牌尚未過期,並且仍然存在。這僅在Chrome中表示該令牌仍然存在。 – LVDev

+0

什麼類型的令牌?智威湯遜或參考? –

+0

智威湯遜是我們正在使用的。 – LVDev