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

时间:2019-05-08 02:06:07

标签: authentication redux jwt access-token auth0

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

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

我们已经看到了此访问令牌stored before in Local Storage,但是Auth0与that here相矛盾。此外,in this answer似乎有些建议像does this one一样存储在本地存储中。

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

Auth0's Diagram for Auth Flow

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

我们应该如何存储访问令牌,以便我们的应用程序可以访问我们的API?还是我们根本不应该存储它?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

存储AT / RT的最佳方法是为客户端后端服务器使用分布式缓存。通过这种方式,您确保所有API调用都必须由您的后端应用程序传输。在您的前端中,您只需要传递ID_Token巫婆即可识别您的最终用户。 用户发送ID_Token->客户端(后端Web应用程序)检查Id_Token并从缓存中获取AT->用AT调用API。