更改JWT机密时如何防止用户注销?

更改JWT机密时如何防止用户注销?,jwt,jwt-auth,Jwt,Jwt Auth,我使用的是JWT令牌实现 我需要更新密钥,有没有办法在不注销每个用户的情况下更新它?我认为一旦我的密钥被更改,就不可能再使用旧令牌。因此,我的所有用户都将注销,需要重新登录。有什么办法解决这个问题吗 如果不是,如果出于安全原因,我需要每月更新机密,那么要求我的用户每月重新登录将非常麻烦 谢谢 如果您更改密钥,则正确的做法是使使用旧令牌签名的所有令牌无效,因为它们将被视为过期 一个好的做法是让令牌在一定时间后过期。通常,您基于两个令牌实现一种机制,access\u-token(通常为1h)和ref

我使用的是JWT令牌实现

我需要更新密钥,有没有办法在不注销每个用户的情况下更新它?我认为一旦我的密钥被更改,就不可能再使用旧令牌。因此,我的所有用户都将注销,需要重新登录。有什么办法解决这个问题吗

如果不是,如果出于安全原因,我需要每月更新机密,那么要求我的用户每月重新登录将非常麻烦


谢谢

如果您更改密钥,则正确的做法是使使用旧令牌签名的所有令牌无效,因为它们将被视为过期

一个好的做法是让令牌在一定时间后过期。通常,您基于两个令牌实现一种机制,
access\u-token
(通常为1h)和
refresh\u-token
(通常为24h)。第二个用于更新第一个。当第二个过期时,用户必须被视为已注销

您需要的是实现刷新令牌机制。为了便于学习,您可以从头开始实现它,也可以只实现OAuth 2.0协议,因为它已经支持这个流。有很多用于服务器端和客户端实现的库


我建议实施某种密钥版本控制。当用户尝试进行身份验证时,他将测试最新版本,优先于不推荐使用的旧版本。