前后分离 redis实现单用户登录限制(用户仅可以在一处登录)

token设计:

	username+”,”+userId+”,”+IP+”,”+loginTime

redis存储K-V:

	key:username+”,”+id
	value: ip+”,”+loginTime

登录实现:

  1. 前端传参username,password;
  2. 通过username查出user,得到userId和加密密码;
  3. 初始化boolean flag=false,构造key:username+”,”+id,在redis中查询记录,若成功查到结果(即ip+loginTime),则解析字符串,将ip和loginTime放在一个map中,设置flag=true;
  4. 密码比对,若比对成功,构建token,然后判断flag,若为true,将token加到map中,并添加提示语,再将map返回,若为false,则直接返回token。

此时前端能够拿到用户上一次的登录信息,根据业务需求做动态处理。

token只需要对前端加密,redis中的信息可以明文存储。

token验证与注销

拿到token解密得到username+id+ip+time,拆分得到key,查询value,进行比对或者删除即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章