java令牌验证使用token和redis实现思路
Posted 程序员超时空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java令牌验证使用token和redis实现思路相关的知识,希望对你有一定的参考价值。
如果你是小白,这套资料可以帮你成为大牛,如果你有丰富开发经验,这套资料可以帮你突破瓶颈
2022web全套视频教程前端架构 H5 vue node 小程序 视频+资料+代码+面试题.
一个标准项目中,会有拦截器!既然有拦截器,就有它放行规则。这里说一下,放行的规则使用到uuid生成token,然后把token,存放在redis中。前端访问时,带上token请求头。响应回来,把token存在本地中,以备下次使用!
1、生成Token令牌
String token=UUID.randomUUID()+"";
使用到UUID,因为他具有唯一性
2、存入Redis中
redisTemplate.opsForValue().set(token,user,Duration.ofMinutes(30L)
使用redis,把token存入30分钟。当然,这里可以使用你自己封装好的redis来保存呢
3、拦截器的设置
1获取headers中的token参数
String token=request.getHeader("token")
2查询token在redis中的剩余时间
Long expire=redisTemplate.getExpire(token)
3对剩余时间判断
if(expre>0)
#这里通过,放行
#可以重置一下redis时间为30分钟
return true
4、前端请求
在headers中设置token
#前端js获取本地 token
var token=localStorage.token
或者
var token=localStorage.getItem("token")
5、前端响应
localStorage.token="响应数据中的token"
或者
localStorage.setItem("token","响应数据中的token")
把响应token数据存在本地中,方便下次调用
6、退出/注销用户
在后端,清除一下 redis存储数据
在前端,清楚一下本地token数据
localStorange.removeItem("token")
总结:
令牌大致思路是:
后端:生成令牌,设置令牌过期时间,存储令牌,判断令牌是否符合要求
后端:请求获取本地令牌,响应把令牌保存在本地
当然还有一种是 jwt,在下次讲解呢!!
思路非常清晰,具体代码,这里不展示了,我把精华贡献给大家。希望家人们,记得点赞!
以上是关于java令牌验证使用token和redis实现思路的主要内容,如果未能解决你的问题,请参考以下文章