登录流程:
一:登录成功后:
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 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優(yōu)質文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦