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

上一篇文章給大家介紹了JWT的概念以及它的優缺點,不熟悉的同學可以查看上一篇文章:

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

上車啦,這回是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號列車


分享到:


相關文章: