JWT(JSON Web Token)由三个部分组成,分别是:
包含了令牌类型(即JWT)和所使用的签名算法信息,通常是一个JSON对象,例如:{ "alg": "HS256", "typ": "JWT" } 其中alg表示签名算法,typ表示令牌类型。
包含了一些声明(Claim),声明是有关实体的一些陈述。声明包含了一些标准声明和自定义声明,例如:{ "sub": "1234567890", "name": "John Doe", "iat": 1516239022 } 其中sub表示主题(Subject),name表示名称,iat表示令牌颁发时间(Issued At)。
使用密钥对头部和载荷进行签名,以保证数据的完整性和真实性,例如:
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)
其中secret表示密钥,+表示字符串连接,HMACSHA256表示签名算法。最终得到一个字符串,由三个部分用.连接而成。