jwt只是縮寫,全拼則是JSON Web Tokens,是目前流行的跨域認證解決方案,一種基於JSON的、用於在網路上聲明某種主張的令牌token。
JWT 原理
#jwt驗證方式是將使用者資訊透過加密產生token,每次請求服務端只需要使用已儲存的金鑰驗證token的正確性,不用再儲存任何session資料了,進而服務端變得無狀態,容易實現拓展。
加密前的使用者訊息,如:
{ "username": "vist", "role": "admin", "expire": "2018-12-08 20:20:20" }
客戶端收到的token:
7cd357af816b907f2cc9acbe9c3b4625
JWT 結構
##一個token分為3部分:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{ "typ": "JWT", "alg": "HS256" }
載荷
」荷載(payload)是資料的載體,用來存放實際需要傳遞的資料訊息,也是一個JSON物件。 JWT官方推薦欄位:{ "username": "vist", "role": "admin" }
JWT 使用
1、服務端依照使用者登入狀態,將使用者資訊加密到token中,回饋給客戶端#2、客戶端收到服務端回傳的token,儲存在cookie中3、客戶端和服務端每次通訊都帶上token,可以放在http請求頭資訊中,如:Authorization欄位裡面4、服務端解密token,驗證內容,完成對應邏輯JWT 特點
以上是jwt是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!