找回密码
 立即注册
软件设计/软件工程 2022-05-05 208 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
问题
我正在制作一个使用 JWT 来维护会话的应用程序。当任何新用户注册时,我会为用户提供一个 JWT 令牌并将其存储在我的数据库和用户的浏览器中。当用户注销时,我会从浏览器和数据库中删除该令牌。

但我想,如果用户从多个设备登录,那么它将从一个设备而不是另一个设备注销。我怎样才能做到这一点?

回答
首先,JWT 应该不能“注销”。但是会自动过期,这就是为什么你应该设置一个短的 expiresIn 时间。

这是因为在 JWT 中,会话由客户端处理,服务器不负责注销用户,但用户丢弃了 JWT。

在您的情况下,我假设您在允许用户之前检查数据库是否存在 JWT,因此您只需要搜索并删除与该帐户关联的其他 JWT。

但是,如果您想保持干净,请接受 JWT 的逻辑:设置较短的生命周期并等待它们过期。





上一篇:用Python中的gzip读取原始压缩字节
下一篇:添加格式为 dd:HH:mm:ss 的日期