处理JWT和刷新令牌流程

3
我正在构建一个使用React构建的前端,访问多个微服务API,我也在构建这些API。对于认证,我已经构建了一个JWT登录系统,但我想知道如何处理刷新令牌的过程。
1. 刷新令牌是否与用户信息一起包含在JWT中,还是使用不同的加密方式单独存储?
2. 如果它是单独存储的,当JWT无效并需要刷新时,其他微服务应该向React应用程序响应什么?是否有常用的HTTP状态码?
3. 我已经阅读到,刷新令牌应该比您的JWT更安全,因为它可以用来发出JWT,并且有效时间更长。除了加密之外,服务器端或客户端是否可以进行额外的安全性操作以提高安全性?
4. 什么时候应该使用新令牌和时间戳刷新刷新令牌,使其失效?
1个回答

3
如果您询问的是OAuth2中定义的刷新令牌,则授权服务器在成功用户身份验证后返回刷新令牌。它只是一个随机字符串。使用刷新令牌,客户端可以获取访问令牌(即您的JWT)。
如果它是自己的令牌,那么当JWT无效并需要刷新时,其他微服务应该用什么来响应React应用程序?使用401-未经授权。
我已经阅读过刷新令牌应该比您的JWT更安全,因为它可以用于发布JWT,并且将具有更长的活动时间。除了JWT之外,是否可以在服务器端或客户端执行任何额外的加密以增强安全性?
使用https来获取刷新令牌。附加加密不会增加安全级别,因为拥有令牌就是身份验证的证明。但是您需要保持其安全。
刷新刷新令牌以使其无效的新令牌和时间戳应在什么时候进行?
这取决于系统。OAuth2没有指定它。通常寿命很长,但在某些情况下,我看到建议在每次使用后更新它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接