首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在从多页应用程序进行身份验证后,在初始下载期间加载JWT令牌以作出反应?

如何在从多页应用程序进行身份验证后,在初始下载期间加载JWT令牌以作出反应?
EN

Stack Overflow用户
提问于 2018-07-12 03:55:38
回答 2查看 1.3K关注 0票数 4

我已经创建了多页应用程序和单页应用程序的混合,这需要认证。应用程序栈如下所示。

  • 用于后端和多页应用程序的节点和表达式
  • 对于单页应用程序,应对路由器和Redux作出反应
  • 用于授权的JWT令牌。

我有一个无反应登录页面,可以验证电子邮件和密码,生成JWT令牌并重定向到React应用程序。

当第一次在客户端加载react应用程序时,我想将这个令牌保存到react应用程序中。但我不知道该怎么做。这是如何做到的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-12 04:02:27

使用localStorage

只读localStorage属性允许您访问存储对象以了解文档的来源;存储的数据在浏览器会话中保存。localStorage类似于sessionStorage,只不过存储在localStorage中的数据没有过期时间,而存储在sessionStorage中的数据在页面会话结束时即当页面关闭时被清除。

基本虫流

当用户登录时,您将希望将令牌保存在客户端本地存储上:

代码语言:javascript
运行
复制
window.localStorage.setItem('token', '2132434knfaskjdafnalenjgralejvnafjvk');

然后,当用户重新加载页面时,您将希望从localStorage获取它:

代码语言:javascript
运行
复制
const jwt = window.localStorage.getItem('token');

最后,当用户注销时,我们将从用户存储中删除JWT:

代码语言:javascript
运行
复制
window.localStorage.removeItem('token');
票数 5
EN

Stack Overflow用户

发布于 2018-07-12 04:28:03

我建议您将jwt存储在一个安全且仅为http的cookie中。这比本地存储安全得多。通过这种方式,您可以将应用程序从XSS攻击中保存下来。如果您有ssl,那么jwt劫持将很困难。

在本地存储中保存jwt使其可用于XSS攻击。只需在后端的响应中设置cookie即可。

例如:

代码语言:javascript
运行
复制
res.cookie('jwt-token' , {'httpOnly': true , path:'path' , secure: true , maxAge: someNumber})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51297053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档