Session

JWT令牌

  • 组成部分

头部(Header):用于存放令牌的“配置信息”,如:使用的加密算法,令牌的类型

负载(Payload):令牌所要“运输”的数据,通常由用户自定义,比如:用户id、用户身份类型、令牌有效时间等

  • 原理(过程)

加密:设置Payload和Header-->使用指定的加密算法和密钥,将编码后的头部和载荷进行签名-->生成Jwt令牌

解密:使用钥密对令牌进行解析后获取jwt令牌中的header或者payload。

简单来说,Jwt令牌想到与一个上了“锁”的船,船上“负载”了你的数据。你要获取船上的数据,就要用钥匙来解开,最后来获取。

在开发中Jwt令牌中通常会负载这令牌的有效时长,以及用户的id,配合springboot的拦截器使用,当客户端发起请求的时候,就要先在拦截器中对jwt令牌进行解密,如果解密失败(令牌过期)就会把这个请求直接返回,不给这个请求发送到真正是controller上。

Redis

核心思路就是:

以随机生成的唯一的一串字符串作为token,而这个token所要包含的数据呢,就作为value存入redis中,过期时间则就是这个key在redis里设置的过期时间。当用户登录后,服务端就会返回这个token给客户端,然后客户端就把这个token存入浏览器本地,以后客户端请求的时候只要把这个token传递过来,最后服务端在拦截器里找redis中的数据做校验就行了。

总结

文章作者: 落叶知秋
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 落叶知秋
学习笔记 后端 学习 Redis
喜欢就支持一下吧