gpt4 book ai didi

java - 在 JWT 身份验证设置中处理刷新 token 的最可扩展/最安全的方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:37 25 4
gpt4 key购买 nike

我正在构建自己的身份验证微服务,尽管我已经完成了主要设置(生成访问 token 等),但在刷新 token 方面我有点迷失。

我觉得有很多不同的方法来处理这个问题。

  • 您可以将它们存储在 Redis 或数据库中。
  • 您可以使用白名单或黑名单

现在,我的想法是添加另一个数据库表,将有效的刷新 token 链接到用户实体。当用户点击注销端点时,刷新 token 将被销毁。

我想知道这是否是一个好的解决方案,否则是否还有其他可能的解决方案可供考虑。我在谷歌搜索时看到了很多文章,但它们都源于 2015 年至 2019 年之间的任何地方,而且都有不同的方法。

最佳答案

刷新 token 的问题不在于您将它们存储在服务器端的位置或方式,而在于您是否以及如何将它们存储在客户端。

这完全取决于您是否可以信任您的客户端(使用 token 的软件)来保守 secret 。您只想向您可以信任的客户端颁发刷新 token ,以保证这些 token 的安全。通常,这意味着仅向 confidential clients 颁发刷新 token 。 ,即在 Web 服务器上运行的 Web 应用程序。这些客户端还可以拥有自己的(客户端)凭据,以便在使用刷新 token 时对自己进行身份验证。

对于公共(public)(非 secret )客户端,例如单页应用程序,一些 OAuth2 库使用隐藏的 IFRAME 和与授权服务器的 cookie session 来颁发新的访问 token 。

因此,您问题的答案取决于您将使用哪种客户端。

关于java - 在 JWT 身份验证设置中处理刷新 token 的最可扩展/最安全的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60592353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com