4
在服務器上驗證令牌的正確方法是什麼?服務器上的JWT登錄流和令牌驗證
我用我的應用程序JWT令牌機制和這裏的如何了其作爲現在工作:
- 客戶端登錄用戶名和密碼
- Server檢查用戶名和密碼,並與RSA 創建令牌公鑰和私鑰,並向客戶端發送一個新的令牌,其中包含用戶電子郵件地址的有效負載 ,然後在 數據庫中存儲相同的令牌。
- 任何後續的服務器,客戶端上的資源請求沿着 jwt令牌發送服務器然後根據用戶使用登錄的電子郵件地址檢查具有 數據庫中可用令牌的令牌。
- 然後提供資源給客戶端。
我想我在這裏失去了一些東西。閱讀其他博客帖子,我發現應該使用密鑰驗證令牌。
幾個問題,我有:
- 我不知道是否令牌應該對公共密鑰或 私人檢查關鍵
- 當發送JWT令牌的客戶我必須公鑰發送給 客戶端在有效載荷中,因爲我使用的是RSA機制?因此,對於資源的每個請求 ,我必須解碼令牌並檢查公鑰 對私鑰?
- 在哪些場景中,我需要將令牌存儲在數據庫中?或者根本不需要在數據庫中存儲令牌 ?
- 當惡意獲取客戶端上的令牌 並將其用於登錄時會發生什麼?
注意:我使用的是前端的後端和angularjs的vanilla java和jax-rs(rest)。謝謝