jwt生成的Token有三部分组成
- header
- alg:采用的加密算法,默认是HMAC SHA256,采用同一个密钥进行加密和解密
- typ:JWT,固定值,通常写成JWT即可
- 会通过base64Url算法进行编码
- payload
- 携带的数据,比如我们可以将用户的id和name放到payload
- 默认携带iat(issued at),令牌的签发时间
- 我们也可以设置过期时间:exp(expiration time)
- 会通过base64Url算法进行编码
- signature
- 设置一个secretKey,通过将前两个的结果合并后进行HS256的算法
- HMACAHA256(base64url(header) + base64url(payload),secretKey
- secretKey暴露是一件非常危险的事情,因为之后就可以通过模拟颁发token,也可以解密token