Authentication 您应该如何存储访问令牌?

Authentication 您应该如何存储访问令牌?,authentication,redux,jwt,access-token,auth0,Authentication,Redux,Jwt,Access Token,Auth0,我们正在构建一个带有React/Redux前端和NodeJS/Express后端的应用程序。一、 由于不是安全专家,选择使用Auth0来处理身份验证 Auth0在用户登录时返回一个ID令牌和一个访问令牌,该访问令牌用于验证和访问我们的后端API 我们已经看到了这个访问令牌,但是Auth0与之相矛盾。此外,似乎有些人建议存储在本地存储中,例如 这让我非常困惑。如何在不将令牌存储在内存中的情况下存储和持久化令牌?我们只能将其存储在Redux中,但刷新时会清除,这不是解决方案 在这里,它们显示用户登

我们正在构建一个带有React/Redux前端和NodeJS/Express后端的应用程序。一、 由于不是安全专家,选择使用Auth0来处理身份验证

Auth0在用户登录时返回一个ID令牌和一个访问令牌,该访问令牌用于验证和访问我们的后端API

我们已经看到了这个访问令牌,但是Auth0与之相矛盾。此外,似乎有些人建议存储在本地存储中,例如

这让我非常困惑。如何在不将令牌存储在内存中的情况下存储和持久化令牌?我们只能将其存储在Redux中,但刷新时会清除,这不是解决方案

在这里,它们显示用户登录并返回访问令牌,稍后它将与API请求一起发送,我理解这一点,但同时它将存储在哪里


我们应该如何存储访问令牌,以便我们的应用程序能够访问我们的API?或者我们根本不应该存储它吗?

存储at/RT的最佳方法是为客户端后端服务器使用分布式缓存。通过这种方式,您可以确保所有API调用都必须由后端应用程序传输。在前端,您只传递ID_令牌,该令牌必须用于标识您的最终用户。
用户发送ID_令牌-->客户端(后端web应用程序)检查ID_令牌并从缓存中获取AT-->使用AT调用API。

我们决定将访问令牌存储在React上下文提供程序中。看起来Auth0已经更新了他们的快速入门指南,以便执行相同的操作。

您可以将访问令牌存储在cookie中。其他web应用程序将无法访问cookie。因此,将令牌存储在cookie中是绝对的答案吗?或者我应该看看其他路线?看来曲奇也是有争议的,乔奇@MattWeber你没有很多选择。您链接到的问题有一个使用cookie的链接。归根结底,这取决于您需要它的安全程度——请记住,既然您已经有了API,页面刷新就不是一个真正的问题,因为如果您不想将其存储在cookie中,您可以重新发送一个标识,并让服务器决定它们是否仍然经过身份验证。建议不要将其存储在本地存储中。不是绝对的事实。我通常将令牌存储在本地存储器中。存储在cookie中是一个更好的选择。看来Auth0建议将令牌存储在内存(状态)中,然后使用静默身份验证?