首页 > 解决方案 > 在 React 中存储 JWT 令牌

问题描述

我写了一个反应应用程序,它使用 REST API 来处理它的请求。这进展顺利,但由于所有端点都受到保护,它们需要 JWT 令牌进行身份验证。

我阅读了很多关于如何存储实际令牌的内容 - 我发现不建议使用 localStorage,因为任何 Javascript 都可以访问它。

我最喜欢的计划是在服务器提供页面时呈现 ID 令牌(例如,像 CSRF 令牌,ID 令牌包含在呈现的页面中,然后通过 React 存储在状态中),但是,所有 Javascript 代码都是静态的而不是由服务器渲染,因此无法在 JS 文件本身内渲染令牌。

我考虑过将令牌渲染到一个 div 并告诉 React 从那里获取它 - 但这也感觉很糟糕,因为 div 本身仍然对用户可见并且可以通过 JS 访问。另一种解决方案是令牌端点,用户使用会话令牌进行身份验证,该会话令牌存储他的会话(已加密且 Javascript 无法访问)以获取然后由 React 使用的令牌。

我想问一下是否有其他方法可以解决这个问题,或者令牌端点总体上是不是一个坏主意或有任何缺点(CSRF?)。

非常感谢,

标签: reactjsjwt

解决方案


推荐阅读