1. 程式人生 > 其它 >token 和 jwt 的區別

token 和 jwt 的區別

Token

概念: 令牌, 是訪問資源的憑證

token的認證流程

  1. 使用者輸入使用者名稱和密碼,傳送給伺服器,伺服器驗證賬號密碼成功
  2. 伺服器生成令牌,本質是一個32位的uuid(token: 55833b9d752bc1914b3087c7503ae5f9)
  3. 將該令牌存到資料庫或redis中,key是uuid,value是userId
  4. 把令牌返給客戶端,客戶端把令牌存在cookie中
  5. 下次請求的時候就把令牌放在請求頭裡帶上
  6. 從redis中驗證該令牌是否過期
  7. 獲取value內容userId
  8. 根據userId查詢使用者資訊,再返回客戶端

優點

  1. 可以隱藏真實資料
  2. 適用於分散式/微服務
  3. 安全係數高

缺點

  1. 存放在redis,必須依賴伺服器,暫用伺服器資源
  2. 效率非常低

JWT

概念:JWT是json web token縮寫。它將使用者資訊加密到token裡,伺服器不儲存任何使用者資訊。伺服器通過使用儲存的金鑰驗證token的正確性,只要正確即通過驗證

組成:JWT包含三個部分: Header頭部,Payload負載和Signature簽名。由三部分生成token,三部分之間用“.”號做分割
'token':'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjb2QiOiI2NDA1NzEtODQ4NzY4LTUwMDE3NS00MjkxNDYtMzg5MDY4IiwidXNyIjoiMTM2NzYyOTExODgiLCJleHAiOjE2NDk2NjkzNTAsImlhdCI6MTY0ODQ1OTc1MCwianRpIjoiZmtnamR2ODMyajBzMTBvMTUxNW9nOG1vaGMifQ.mTjcpqGTBIsEF3yEZmy9sr_0gpUsPAhWcAFVEeGI-F4'