52ky 发表于 2022-5-5 09:14:17

使用 JWT 管理多个设备节点 js 的用户会话

问题
我正在制作一个使用 JWT 来维护会话的应用程序。当任何新用户注册时,我会为用户提供一个 JWT 令牌并将其存储在我的数据库和用户的浏览器中。当用户注销时,我会从浏览器和数据库中删除该令牌。

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

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

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

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

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



页: [1]
查看完整版本: 使用 JWT 管理多个设备节点 js 的用户会话