JWT json web token

JWT json web token_第1张图片

一、token的组成

一个token分3部分,按顺序为

1.头部(header)

   头部承载两部分信息:

        1.1声明类型,这里是Jwt

        1.2声明加密的算法 通常直接使用 HMAC SHA256

2.载荷(payload)

        2.1标准中注册的声明的数据;

iss: jwt签发者
sub: jwt所面向的用户
aud: 接收jwt的一方
exp: jwt的过期时间,这个过期时间必须要大于签发时间
nbf: 定义在什么时间之前,该jwt都是不可用的.
iat: jwt的签发时间
jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。

        2.2自定义数据。    key-value

3.签证(signature)

  base64加密后的headerbase64加密后的payload连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后就构成了Jwt的第三部分。

header.payload.signature 三部分之间由.分隔

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIxYzdiY2IzMS02ODFlLTRlZGYtYmU3Yy0wOTlkODAzM2VkY2UiLCJleHAiOjE1Njk3Mjc4OTF9.wweMzyB3tSQK34Jmez36MmC5xpUh15Ni3vOV_SGCzJ8

JWTString=Base64(Header).Base64(Payload).HMACSHA256(base64UrlEncode(header)+"."+base64UrlEncode(payload),secret)

二. 在spring_security中的应用

2.1   认证通过,使用user的id生成一个jwt    调用createJWT时候仅需要传id、【过期时间】

          把jwt响应给前端
JWT json web token_第2张图片

2.2    JwtAuthenticationTokenFilter  过滤器

JWT json web token_第3张图片

三.前端发请求携带token

你可能感兴趣的:(java)