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实现思路的主要内容,如果未能解决你的问题,请参考以下文章

token令牌和jwt

使用Redis实现接口防重复提交

使用Redis实现接口防重复提交

利用Redis撤销JSON Web Token产生的令牌

使用redis实现客户端和服务端token验证

redis常见问题