一个标准项目中,会有拦截器!既然有拦截器,就有它放行规则。这里说一下,放行的规则使用到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,在下次讲解呢!!
思路非常清晰,具体代码,这里不展示了,我把精华贡献给大家。希望家人们,记得点赞!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/107093.html