有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在构建自己的身份验证微服务,尽管我有主设置(生成访问令牌等),但在刷新令牌时我有点不知所措

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

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

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

我想知道这是否是一个好的解决方案,否则,如果还有其他可能的解决方案要考虑。我在谷歌上看到过很多文章,但它们都来自2015年至2019年间的任何地方,而且都有不同的方法


共 (1) 个答案

  1. # 1 楼答案

    刷新令牌的问题不在于在服务器端存储它们的位置或方式,也不在于是否以及如何在客户端存储它们

    这完全取决于您是否可以信任您的客户(使用令牌的软件)来保守秘密。您只希望向可以信任的客户机颁发刷新令牌,以确保这些令牌的安全。通常,这意味着只向confidential clients发出刷新令牌,即在web服务器上运行的web应用程序。当使用刷新令牌时,这些客户机还可以拥有自己的(客户机)凭据以进行身份验证

    对于公共(非机密)客户端,如单页应用程序,一些OAuth2库使用隐藏的IFRAME和与授权服务器的cookie会话来发布新的访问令牌

    因此,您的问题的答案取决于您将使用哪种类型的客户机