Redis实现登录认证与JWT令牌的区别
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中的数据做校验就行了。
总结
本文链接:
/archives/1719810646946
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
落叶知秋!
喜欢就支持一下吧