我知道JWT可以用來取代基於cookie /會話的身份驗證,並且我們在之前的項目中使用了JWT,並且我知道使用JWT有很多好處,例如無狀態,CDN支持,避免csrf攻擊,更好以支持羣集ENV等JWT(json web token)可以完全替代Session嗎?
但是,我很困惑JWT是否可以完全取代Session?如果我們想充分利用JWT來保持所有會話狀態,那麼這意味着只要服務器後端想要將任何狀態添加到會話中,而不是這樣做,則服務器端必須重新生成具有該信息和客戶端的新令牌方必須更新新生成的令牌,我懷疑這是否正確或不正確?
如果我們僅利用JWT來支持身份驗證並保留唯一的用戶憑證信息,儘管身份驗證服務可以作爲獨立的微服務進行分離,但如果我們想要,會話對於業務服務後端仍然是必需的保持一些會話狀態,對嗎?在閱讀spring文檔時,建議利用Redis來保存會話狀態以支持集羣環境。
總的來說,我很困惑JWT是否可以用來完全替代會議?
非常感謝。
@ mailme365我更新了我的答覆。現在看起來更像是一個答案。 – smwikipedia
非常感謝你爲你詳細解答,智威湯遜不能完全代替會議,所以很多JWT的優點(如CDN,無國籍等)將僅用於身份驗證服務器,而不是業務服務器的工作,除非我們使用Redis的保存會話數據如Spring推薦。這意味着,如果我們將認證功能和業務功能組合到同一個tomcat應用程序中,我們仍然會使用Session,在這種情況下,我沒有看到使用JWT顯而易見的好處,唯一的好處是可以避免csrf攻擊。 – mailme365
@ mailme365感謝您的總結。我也這麼認爲。 – smwikipedia