上車啦,這回是JSON Web Token號列車

上一篇文章給大家介紹了JWT的概念以及它的優缺點,不熟悉的同學可以檢視上一篇文章:大名鼎鼎的JSON Web Tokens你知多少

今天就給大家實戰下,光說不練假把式

上車啦,這回是JSON Web Token號列車

老習慣,上效果圖,程式碼地址:https://github。com/onlyonezhongjinhui/jwt-demo。git

訪問createJwt介面返回了token並儲存在了cookie中

token=eyJhbGciOiJIUzI1NiJ9。eyJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNTI0NjQwODc2fQ。_BPPzPlfXPMygYBc2jTgJIGBai6KfqiNnkW3X2uRqgg

上車啦,這回是JSON Web Token號列車

JWT的三部分頭部、載荷、簽名完整。

訪問refreshJwt介面重新整理token,更新它的過期時間,

token=eyJhbGciOiJIUzI1NiJ9。eyJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNTI0NjQwOTQyfQ。lJYtVAbB7G_eLNnoIJUNBDue——OHj2xRdCwmconW2Qk

上車啦,這回是JSON Web Token號列車

此時的token已經發現了變化。

訪問getUser介面從token中取出使用者資訊

上車啦,這回是JSON Web Token號列車

誒呦,不錯哦

上車啦,這回是JSON Web Token號列車

怎麼實現的呢?

為了方便使用JWT,先引入JWT的開源庫

上車啦,這回是JSON Web Token號列車

要生產JWT,需要準備金鑰用來簽名,我們簡單使用配置檔案中放置一個金鑰,載入到類中

上車啦,這回是JSON Web Token號列車

上車啦,這回是JSON Web Token號列車

準備操作JWT的方法:

createJwtToken負責把使用者資訊放入載荷中,設定過期時間為10分鐘,採用HS256加密簽名,一個token就這樣新鮮出爐了

上車啦,這回是JSON Web Token號列車

createJwtToken

getClaims方法負責從token中獲取宣告的資訊

上車啦,這回是JSON Web Token號列車

isExpired方法負責驗證token是否過期

上車啦,這回是JSON Web Token號列車

extractUser方法負責從token中取出使用者資訊

上車啦,這回是JSON Web Token號列車

refreshJwt方法負責重新整理token過期時間,從新生成一個token

上車啦,這回是JSON Web Token號列車

接下來就是控制器暴露的介面

上車啦,這回是JSON Web Token號列車

栗子就吃完了,好吃的多多點贊、轉發,謝謝。

上車啦,這回是JSON Web Token號列車