jwt
json web token袱贮,一般用于用戶認證(前后端分離表伦、微信小程序、app開發(fā))
-
傳統(tǒng)的token認證
用戶登錄憎蛤,服務(wù)端生成token返回給前端外傅,并把相應(yīng)的token保存到服務(wù)端,前端下次請求攜帶token蹂午,服務(wù)端進行token驗證栏豺,通過返回成功信息
-
jwt
與傳統(tǒng)的token方式不同的是:服務(wù)端不保存token,每次前端攜帶的token過來豆胸,服務(wù)端token的驗證過程是通過相關(guān)的校驗算法來進行驗證的
注意:jwt生成的token是由三段字符串組成連接起來的
-
第一段字符串奥洼,header,內(nèi)部包含算法/token類型
json轉(zhuǎn)化成字符串, 然后做base64url加密
{ "alg": "HS256", "typ": "JWT" }
-
第二段字符串晚胡,payload灵奖,自定義數(shù)據(jù)
json轉(zhuǎn)化成字符串,人后做base64url加密
{ "id": "123", "name": "張三", "exp": 1235 # 超時時間 }
-
第三段字符串
- 第1估盘,2部分密文拼接起來
- 對前2部分的密文進行HS256加密 + 加鹽
- 對HS256加密后的密文進行base64url加密
-
-
用戶再次請求攜帶jwtoken
- 獲取token
- 對token進行切割
- 對第二段進行base64url解密瓷患,獲取payload
- 對第1,2段拼接進行HS256加密 + 加鹽生成的密文和對第三段解密出來的密文進行對比遣妥,相同表示通過擅编,否則token失效