在使用JWT時,一個讓人糾結的問題就是“Token的時限多長才合適?”。對此,Stormpath的這篇文章給出了一個可供參考的建議:
- 面對極度敏感的信息,如錢或銀行數據,那就根本不要在本地存放Token,只存放在內存中。這樣,隨着App關閉,Token也就沒有了。
- 此外,將Token的時限設置成較短的時間(如1小時)。
- 對於那些雖然敏感但跟錢沒關系,如健身App的進度,這個時間可以設置得長一點,如1個月。
- 對於像游戲或社交類App,時間可以更長些,半年或1年。
並且,文章還建議增加一個“Token吊銷”過程來應對Token被盜的情形,類似於當發現銀行卡或電話卡丟失,用戶主動掛失的過程。
關於“Token吊銷”的實現,文章建議個方式如下:
- 在DB中記錄用戶對應的Token
- 實現一個Api Endpoint,負責將指定用戶的Token從DB中刪除
原文值得一讀,並且在讀之前,建議先讀它的前篇。