如何在数据库中存储刷新令牌

问题描述 投票:0回答:1

我是jwt的初学者,我读过一些关于刷新令牌的文章,并且我知道在数据库中存储刷新令牌很重要。当用户登录多个设备或注销时会发生什么情况,是否需要撤销刷新令牌?

我尝试创建一个包含 2 列(user_id,refresh_token)的表 那么当用户注销或用户登录到许多设备时如何在数据库中存储刷新令牌。

node.js jwt refresh-token
1个回答
0
投票

我这样做的方法是添加更多列。一般来说,拥有一个名为“已撤销”或“活动”的列以及“令牌系列”会很有帮助。

撤销列的目的是能够强制用户注销,这意味着用户下次更新其 access_token 时将被拒绝,从而有效地将其注销。当用户手动注销时也可以使用此功能。

在许多情况下,当您获得新的访问令牌时,您也希望更新refresh_token。这通常是通过“滚动令牌”完成的,这意味着将使用访问令牌颁发新的令牌,而前一个令牌将被停用。在这种情况下,为任何新的初始登录分配一个系列,并为任何衍生代币提供相同的系列是很有用的。

如果您只想从该设备注销,则可以撤销该家庭的所有令牌,如果您想从所有设备注销,则可以撤销该用户 ID 的所有令牌。

话虽如此,如果您对安全相关代码不太满意,我建议您使用了解其知识的人提供的服务,例如Auth0 来处理您的身份验证。

© www.soinside.com 2019 - 2024. All rights reserved.