CNode

nodeJS使用redis存储token时,如何在用户重新登录时清除之前的token?

问答
Hhq45299发布于7 年前最后回复7 年前7 回复5672 浏览0 收藏

我想用 { token: userId } 的形式将登录后产生的token保存在redis中,token有效期时半小时,存入redis时,设置过期时间为一小时,这样做是为了当用户处于活跃状态时,到过期时间,有半小时刷新token重新发送请求,如果同一个账号在其他设备登录,无法做到清除之前的token。这个要怎么做。

查看回复

回复 (7)

H
hq45299#1·7 年前

好的

H
hq45299#2·7 年前

有大神说下怎么处理吗?

C
chloe#3·7 年前

小兄弟
遇到这样的问题得多思考

解决方法 你可以存一个用户标识与token的关联信息到redis中,重新登录的时候先找有没有这种关系,有的话找到token删除之

A
a69694510#4·7 年前

老哥,更新redis的时间就行了呀

I
im-here#5·7 年前

逻辑上设置为同一个用户永远只有一个token?

R
rrbe#6·7 年前

token 应该在 db 存一份。 登录时候查 db 找到 old token,在 redis 中删掉,再注册新 token。

Z
zuohuadong#7·7 年前

express 有个 auth 库,有黑名单机制

参与回复
登录后即可参与回复。登录