api在本地主機上運行,請求來自基於Angular2的應用程序,並且使用OWIN和OAuth 2.0保護api。我不知道我應該在這裏粘貼哪部分代碼,因爲我不知道問題出在哪裏。鏈接到令牌的ASP.NET API用戶永遠不會更改
情景: 用戶1個日誌在客戶端應用程序(從API請求令牌) 用戶1獲得令牌:XXXX ...... 用戶1尋找他的數據和從服務器 用戶得到他的數據傳回1註銷客戶端應用程序和承載的令牌從localStorage的
刪除用戶2個日誌中(同一應用程序會話,同一服務器會話),並從API獲取一個Takon 用戶2得到令牌:YYYY ... 用戶2查找他的數據,但從用戶1獲取數據。
服務器獲取不同的令牌爲用戶2,但看着
User.Identity.GetUserId();
服務器仍然認爲它是當用戶1.
當登出我還調用API /帳號/註銷,但這樣做當我重新啓動本地主機服務器,並與用戶2登錄比我得到正確的數據,但隨後的情況是剛換不會改變任何東西
public IHttpActionResult Logout()
{
Authentication.SignOut(CookieAuthenticationDefaults.AuthenticationType);
return Ok();
}
(用戶1從用戶2得到的數據)。 如果您需要更多代碼(但是我沒有更改與AccountController相關的任何內容),請告訴我,我會查找它。
任何幫助表示讚賞。
謝謝
API通常不具有註銷功能。令牌服務器將通過令牌驗證和識別客戶端,該令牌通常在一段時間後過期。我想重新設計身份驗證不是一種選擇? – Crowcoder
@Crowcoder如果使用令牌找到了正確的用戶,並且我爲這兩個用戶獲得了兩個不同的令牌,爲什麼服務器告訴它它們都是同一個用戶?這是我不明白的。我知道註銷並不是真的需要,不同的令牌應該足以將其視爲不同的用戶 – lordvlad30
沒有代碼是不可能分辨的。我認爲你可以通過它進行調試並找出結果。你不會得到任何(質量)答案,因爲它是無法回答的。 – Crowcoder