对于 'non-singlepage' 前端应用程序,我应该在哪里存储我的 JSON Web 令牌

Where should i store my JSON Web Token for a 'non-singlepage' frontend application

我最近使用 JWT 作为身份验证方法使用 hapiJS 构建了一个简单的 REST API。 我现在想做一个纯ES6的前端,但不一定是SPA(不会只有一个.html文件)。

我的问题: 登录后存储 JWT 的最佳方式是什么。本地存储,Cookie ?

如果将其存储在 cookie 中,您将容易受到 CSRF 攻击,因为浏览器会自动发送每个请求的令牌。有关此类攻击的更多信息,请参阅:

https://en.wikipedia.org/wiki/Cross-site_request_forgery

我建议将其存储在 localstorage 中,然后通过请求的头部发送令牌。 注意:您的浏览器不会自动为您执行此操作!

示例:

x-access-token: Bearer -jwt goes here-