文章目錄
- 一、介紹
一、介紹
JWT(JSON Web Token)是一種開放標準(RFC 7519)的方法,用于在雙方之間安全地傳輸信息。這些信息可以是驗證、授權、信息交換等。JWT 通常被用于在客戶端和服務器之間傳遞用戶信息,特別是在無狀態的 RESTful API 架構中。
JWT 的主要組成部分包括:
- Header(頭部):描述了 JWT 的元數據,比如其類型(通常是 JWT)以及簽名所用的算法(如 HMAC SHA256、RSA 等)。
{ "alg": "HS256", "typ": "JWT"
}
這個 JSON 對象會被 Base64Url 編碼,形成 JWT 的第一部分。
- Payload(負載):包含了需要傳遞的數據。JWT 規范規定了七個官方字段,但你也可以添加自己的私有字段。這些字段都是可選的:
iss (issuer):簽發人
exp (expiration time):過期時間
sub (subject):主題
aud (audience):受眾
nbf (Not Before):生效時間
iat (Issued At):簽發時間
jti (JWT ID):編號
除了官方字段,你還可以在這個部分定義私有字段,例如:
{ "sub": "1234567890", "name": "John Doe", "admin": true, "iat": 1516239022
}
這個 JSON 對象也會被 Base64Url 編碼,形成 JWT 的第二部分。
- Signature(簽名):
- 使用服務器上的密鑰(Secret Key)和指定的簽名算法(如HMAC SHA256),對編碼后的Header和Payload進行簽名。
- 簽名的作用是確保JWT的完整性和真實性,防止數據被篡改。
- 簽名結果也是一個Base64Url編碼的字符串。