认识JWT
什么是JWT?
JWT全称是JSON Web Token是一个开放标准(RFC 7519),目前最流行的跨域身份验证解决方案。
它定义了一种经过加密的格式,放在json对象在请求中传递,用于验证请求是否被允许访问。
1
2
3
JWT的原理
服务器经过认证以后,会生成加密串返回前台,结构如下图:
JSON Web Token由三部分组成,它们之间用.连接。
* Header 头部
* Payload 负载
* Signature 签名
1
2
3
4
5
Header
Header 部分用Base64URL解密后是一个JSON对象,主要描述了签名的算法和令牌类型。
{
"alg": "HS256",
"typ": "JWT"
}
1
2
3
4
Payload
Payload 部分同样也是一个JSON对象,它包含Claim。
Claim中存的就是这些字段,有三种类型:
Registered claims 预定义的声明
Public claims 公开声明
Private claims 私有声明
1
2
3
JWT 规定了7个Registered claims
iss (issuer):签发人
exp (expiration time):过期时间
sub (subject):主题
aud (audience)