为了账号安全,请及时绑定邮箱和手机立即绑定

使用token机制做登录鉴权(threadlocal+redis)

标签:
Java

登录流程:

一:登录成功后:

1,根据userId生成token,放入redis中 key为token,value为用户信息进行存储。

2,response token到前端的cookie中

3,threadlocal中存储user 信息

二:拦截器:

1,通过request获取前端的cookie,check token(有两个token ,token2根据token1生成)

2,token不为空的话,去redis中拿token为key查询user信息,如果user为空,直接返回false.

3,user不为空,刷新threadlocal中的user info,同时刷新redis中token : user的过期时间


扩展思路:

问:如果想实现一个账号如果被第二个人登录,第一个登录的会被顶掉,有思路吗:

redis : userId -> token 

           token -> user

我这样想的:登录succ->生成唯一token->redis存 userId:token ,token:user 。拦截器根据redis的token key 进行判断user是否为null;

                     如果第二个人登录此账户,同样的生成一个唯一token,根据userId查出redis中的所有token,然后遍历删除token:user。重新设置新的token:user


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消