0
這裏是我的項目結構是什麼樣子註銷一個無狀態的應用
- UI:AngularJS應用
- 後端:Java的+ MongoDB的無狀態的應用
的UI認證給定用戶和REST api使用JWT令牌進行響應。對於每個後續請求,REST api都會在標頭中使用令牌,如果不存在,它將返回Unautorized
錯誤。
現在,實施logoff
功能的最佳方法是什麼?有一點很清楚,我將從UI cookie中刪除令牌。但我需要告訴服務器用戶已註銷。
我正在考慮維護一個內存數據庫以跟蹤登錄的用戶,並在用戶退出後從內存中刪除用戶,但它會使應用程序處於某種有狀態(我猜)。另外,擴展應用程序可能會變得很複雜,因爲我不得不跨所有節點複製內存中的用戶。
對於每個REST調用,我從MongoDB獲取用戶詳細信息。使用數據庫來存儲登錄狀態是否有意義?我只是在大聲思考。因爲我不知道該走什麼方向。
*「但我需要告訴服務器用戶已註銷。」*爲什麼?無論如何,只需製作一個註銷端點即可從後端刪除令牌。 –
*爲什麼*以便服務器知道任何後續請求都需要登錄憑證。正如我所提到的,如果我不這樣做,令牌已被某人盜用,即使客戶端已被註銷,它們也可以繼續發送請求。 *只是註銷終點*會引起我在第二部分提到的問題,即可擴展性問題。 –
我認爲在您的數據庫中存儲登錄狀態和從數據庫中刪除已失效的令牌之間沒有任何性能差異 –