我应该在哪里存储“非单页”前端应用程序的 JSON Web 令牌

Posted

技术标签:

【中文标题】我应该在哪里存储“非单页”前端应用程序的 JSON Web 令牌【英文标题】:Where should i store my JSON Web Token for a 'non-singlepage' frontend application 【发布时间】:2016-12-31 04:05:25 【问题描述】:

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

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

【问题讨论】:

视情况而定,请阅读cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions 【参考方案1】:

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

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

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

例子:

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

【讨论】:

以上是关于我应该在哪里存储“非单页”前端应用程序的 JSON Web 令牌的主要内容,如果未能解决你的问题,请参考以下文章

非单页的静态文件如何实现多语言切换

我应该在哪里存储我的 Xcode Swift 应用程序的初始数据?

Symfony 在哪里存储和获取不记名令牌并做出反应?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

ios的离子在哪里存储json文件?

我应该在哪里存储我的应用程序的“激活”密钥?