redis保存token

有个需求,需要根据user_id找到对应的token,因为是redis只有set可以设置过期时间,那采用
['user_id'=>'token'],现在问题来了,一个用户支持多设备登录,采用['user_id'=>'token']会发生覆盖。
那采用什么结构来储存比较合适。
之前考虑过redis采用['token'=>'user_id'],然后再把user_id,token存到数据库,感觉这个方案不是很好。

阅读 9k
4 个回答

token => [

xx => xx,
xx => xx,
xx => xx

]

这种形式比较好,如果需要的话可以用redis来个反向的绑定
user_id => [

token_1, token_2

]
后者方便修改密码等操作之后,强制用户token失效

是因为新的token覆盖了旧token吧,只需要改正下逻辑两个都保存即可,匹配时查找同一user_id下是否存在这个token就好了

你的token都存在一个db中,存储时候没用根据设备/接口做区分,当然会覆盖。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题