① jwt和token區別
jwt和token區別為主要體現在接收的信息是否需要進入資料庫查詢信息。
Token需要查庫驗證token是否有效,而JWT不用查庫,直接在服務端進行校驗,因為用戶的信息及加密信息,和過期時間,都在JWT里,只要在服務端進行校驗就行,並且校驗也是JWT自己實現的。
JWT是json web token縮寫。它將用戶信息加密到token里,伺服器不保存任何用戶信息。伺服器通過使用保存的密鑰驗證JWT Token的正確性,只要正確即通過驗證。
JWT包含三個部分: Header頭部,Payload負載和Signature簽名。由三部分生成Jwt Token,三部分之間用「.」號做分割, 校驗也是JWT內部自己實現的。
Token基本原理:
1、客戶端使用用戶名跟密碼請求登錄。
2、服務端收到請求,去驗證用戶名與密碼。
3、驗證成功,服務端會簽發一個Token保存到(Session,redis,mysql)中,然後再把這個Token發送給客戶端。
4、客戶端收到Token以後可以把它存儲起來,比如放在Cookie里或者Local Storage里。
5、客戶端每次向服務端請求資源的時候需要帶著服務端簽發的Token。
6、服務端收到請求,驗證密客戶端請求裡面帶著的Token和伺服器中保存的Token進行對比校驗, 如果驗證成功,就向客戶端返回請求的數據。