简介
JSON Web Token(JWT)是一个非常轻巧的规范,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。它是基于RFC 7519标准定义的一种可以安全传输的小巧和自包含的JSON对象。由于数据是使用数字签名的,所以是可信任的和安全的。JWT可以使用HMAC算法对secret进行加密或者使用RSA的公钥私钥对其进行签名。
JWT的组成
一个JWT实际上就是一个字符串,它由三部分组成,头部(Header)、载荷(Payload)与签名(Signature)。
拼接形式为: Header.Payload.Signature
头部(Header)
JWT的头部用户描述关于该JWT的最基本信息,例如其类型以及签名所使用的算法等。这个可以被表示成一个JSON对象,比如下面类型就是JWT,使用的算法是HS256。
{
"typ": "JWT",
"alg": "HS256"
}
上面的内容用Base64进行编码,编码后的字符串如下:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
载荷(Payload)
Payload里面是Token的具体内容,也就是Token的数据声明(Claim),这些内容里面有一些是标准字段,也可以添加其他需要添加的内容,如userId,email等。
{
"iss": "why",
"iat": 1416797419,
"exp": 1448333419,
"aud": "www.example.com",
"sub": "taobao.com",
}