上一篇文章給大家介紹了JWT的概念以及它的優缺點,不熟悉的同學可以查看上一篇文章:
今天就給大家實戰下,光說不練假把式
老習慣,上效果圖,代碼地址:https://github.com/onlyonezhongjinhui/jwt-demo.git
訪問createJwt接口返回了token並保存在了cookie中
token=eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNTI0NjQwODc2fQ._BPPzPlfXPMygYBc2jTgJIGBai6KfqiNnkW3X2uRqgg
JWT的三部分頭部、載荷、簽名完整。
訪問refreshJwt接口刷新token,更新它的過期時間,
token=eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNTI0NjQwOTQyfQ.lJYtVAbB7G_eLNnoIJUNBDue--OHj2xRdCwmconW2Qk
此時的token已經發現了變化。
訪問getUser接口從token中取出用戶信息
誒呦,不錯哦
怎麼實現的呢?
為了方便使用JWT,先引入JWT的開源庫
要生產JWT,需要準備密鑰用來簽名,我們簡單使用配置文件中放置一個密鑰,加載到類中
準備操作JWT的方法:
createJwtToken負責把用戶信息放入載荷中,設置過期時間為10分鐘,採用HS256加密簽名,一個token就這樣新鮮出爐了
getClaims方法負責從token中獲取聲明的信息
isExpired方法負責驗證token是否過期
extractUser方法負責從token中取出用戶信息
refreshJwt方法負責刷新token過期時間,從新生成一個token
接下來就是控制器暴露的接口
栗子就吃完了,好吃的多多點贊、轉發,謝謝。
閱讀更多 Lucif墮落天使 的文章