Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JWT身份验证设置中,处理刷新令牌的最具可扩展性/安全性的方法是什么?_Java_Node.js_Authentication_Redis_Jwt - Fatal编程技术网

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

Java 在JWT身份验证设置中,处理刷新令牌的最具可扩展性/安全性的方法是什么?,java,node.js,authentication,redis,jwt,Java,Node.js,Authentication,Redis,Jwt,我正在构建自己的身份验证微服务,尽管我有主设置(生成访问令牌等),但在刷新令牌时我有点不知所措 我觉得有很多不同的方法来处理这个问题 您可以将它们存储在Redis或数据库中 您可以使用白名单或黑名单来删除它们 现在,我的想法是添加另一个数据库表,将有效的刷新令牌链接到用户实体。当用户点击注销端点时,刷新令牌将被销毁 我想知道这是否是一个好的解决方案,否则,如果还有其他可能的解决方案要考虑。我在谷歌上看到过很多文章,但它们都来自2015年到2019年间的任何地方,而且它们都有不同的方法。刷新令

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

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

  • 您可以将它们存储在Redis或数据库中
  • 您可以使用白名单或黑名单来删除它们
现在,我的想法是添加另一个数据库表,将有效的刷新令牌链接到用户实体。当用户点击注销端点时,刷新令牌将被销毁


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

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

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

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


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

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

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

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

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