JWT刷新token策略


SpringCloud的項目用JWT做身份驗證,對於token過期時間的刷新策略整理如下圖:

 

 

刷新策略

       在登錄接口中返回兩個token,一個是用來請求業務接口驗證身份信息的accessToken,一個是過期后用來獲取新的token的refreshToken,refreshToken中不攜帶權限等信息,因為不需要讓refreshToken去請求業務接口,只用來獲取新的tokenrefreshToken的過期時間相對長一些,accessToken的過期時間相對短一些,這一點根據自己的業務來定。

       當客戶端用accessToken請求業務接口收到【證書過期】的時候,攜帶着refreshToken去請求【刷新token】的接口該接口重新設置兩個token的過期時間然后返回給客戶端,注意:不要改變兩個token中存放的信息,重新設置過期時間的代碼如下: 

 

 
設置過期時間

 

獲取JWT主體

    注意這里的setAllowedClockSkewSeconds方法,如果不設置這個時間,一旦你的token過期了,你在獲取JWT主體的時候就會報錯,JWT的源碼如下:

 

JWT過期拋異常

         所以即使你的accessToken過期了,你也應該允許獲取到主體的信息以方便刷新,setAllowedClockSkewSeconds的時間應該跟你的refreshToken的過期時間是一樣的,此處也可以根據具體業務自行斟酌。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM