首页 新闻 会员 周边 捐助

单点登录,有移动端和pc端。用redis?数据库?拦截器?

0
悬赏园豆:50 [已解决问题] 解决于 2019-01-23 15:53

用户在一个A终端登了了。且该账号又在B终端登录,则A终端账号下线。

帅的很耗cpu的主页 帅的很耗cpu | 初学一级 | 园豆:152
提问于:2018-12-29 14:32

我看网上的基本上都是使用redis。

帅的很耗cpu 5年前

用户登录的时候将uid和token存入redis中。每次请求接口都带上token。我怎么做验证呢。每次登录都去redis中查询是否有相同的uid存在。存在则将旧的token修改为新的token。每个接口请求在拦截器中验证token是否存在。不存在则重新登录?这样合理吗

帅的很耗cpu 5年前
< >
分享
最佳答案
0

key-value应该就足够了

PC端和手机端也单点

    uid作为key,token作为value

如果想手机端和PC端可以同时在线,可以加前缀

    PC端:pc + uid
    手机端:m + uid
收获园豆:50
大志若愚 | 老鸟四级 |园豆:2138 | 2019-01-08 18:24
其他回答(4)
0

你本地的token记一下过期时间啊,没过期就保持登录,过期了再去发起请求,然后重新登录

顾星河 | 园豆:7262 (大侠五级) | 2018-12-29 14:58

但是redis只能key-value不能key-value-vlaue

支持(0) 反对(0) 帅的很耗cpu | 园豆:152 (初学一级) | 2018-12-29 16:56

@帅的很耗cpu: 你可以把多个value合并为一个value存起来,用的时候再拆开。比如字符串存三个ID,“1,2,3”,用的时候根据逗号分割就能取出每个单独的value了

支持(0) 反对(0) 顾星河 | 园豆:7262 (大侠五级) | 2018-12-29 16:59

redis有什么比较好用的储存吗 list?list,set。拦截器拦截获取token,在使用token和redis里面的token作对比吗?没有相同的则表示一定登录了。有相同的表示在登录状态

支持(0) 反对(0) 帅的很耗cpu | 园豆:152 (初学一级) | 2018-12-29 16:59

@帅的很耗cpu: redis数据类型的使用场景我没有实际操作过,你可以网上查阅一下相关博客

支持(0) 反对(0) 顾星河 | 园豆:7262 (大侠五级) | 2018-12-29 17:08
0

ip + 用户名 一起验证

同一时间的 的话 ,可以加上 时间 验证

zhanxuewei | 园豆:214 (菜鸟二级) | 2018-12-29 18:14
0

但是redis只能key-value不能key-value-vlaue
—— 你自己不能弄两个就是这个了么,或者还有变通一下一个也能搞定。

花飘水流兮 | 园豆:13595 (专家六级) | 2019-01-01 21:59
0

cas单点登录

NEVERS | 园豆:313 (菜鸟二级) | 2019-01-15 16:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册