jwt 全称是 json web token。是由用户以用户名、密码登录,服务端验证后,会生成一个 token,返回给客户端,客户端在下次访问的过程中携带这个 token,服务端责每次验证这个token。
jwt 由三部分组成,每一部分之间用符号"."进行分割,整体可以看做是一个长字符串。一个经典的jwt的样子:xxx.xxx.xxx。
头部由两部分组成:第一部分是声明类型,在 jwt 中声明类型就 jwt,第二部分是声明加密的算法,加密算法通常使用 HMAC|SHA256。
{
'type': 'JWT', // 'type':'声明类型'
'alg': 'HS256' // 'alg':'声明的加密算法'
}
这一部分是jwt的主体部分,这一部分也是json对象,可以包含需要传递的数据
其中jwt指定了七个默认的字段选择,这七个字段是推荐但是不强制使用,通常我们说 JWT 用于用户登陆,就可以在这个地方放置用户的id和用户名
这部分是对前两部分进行base64编码在进行加密,这个加密的方式使用的是jwt的头部声明中的加密方式,在加上一个密码(secret)组成的,secret 通常是一个随机的字符串,这个 secret是服务器特有的,不能够让其他人知道。