使用 jwt 身份验证保护反应应用程序

Posted

技术标签:

【中文标题】使用 jwt 身份验证保护反应应用程序【英文标题】:securing react app with jwt authentication 【发布时间】:2018-09-11 18:07:50 【问题描述】:

我创建了一个带有 jwt 身份验证的应用程序,流程很简单,就像我向服务器提供用户 ID 和密码一样,如果经过身份验证,它会为我提供 jwt 并将 jwt 令牌存储到会话存储中,并允许用户登录,并且然后在每次请求时,我都使用 axios 创建了一个拦截器,它从会话存储中发送令牌,一切正常。

但我很困惑,当用户登录时,jwt 是从会话存储中看到的,那么存储 jwt 的任何安全方式是什么,看不到,以及在当前工作流程中为保护应用程序而采取的任何安全措施

p>

【问题讨论】:

【参考方案1】:

用户能够看到 JWT 没有问题。这是因为,让我们假设您是用户,并且能够看到 JWT,就像能够知道密码一样。如果第三人知道 JWT 是唯一可能出现问题的时间。

可以存储 JWT 的地方,或者主要是 sessionstoragelocalstoragecookies,它们在提供的安全性方面各有优缺点。并且在所有方法中,用户都可以看到 JWT。

阅读this article 的第二部分,了解保存在storagecookies 中的区别,以及如何在每种方法上保护 JWT。

【讨论】:

好吧,但是看看第三个用户是否可以获得 jwt,那么如何保护那个东西? 更新了如何保护它的答案。

以上是关于使用 jwt 身份验证保护反应应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用JsonWebToken反应保护管理面板

vertx 中的 JWT 身份验证引发未经授权的行为

使用jwt身份验证保护react应用程序

在 JWT 身份验证过程中需要帮助

Angular 6 JWT 身份验证

用于反应前端的基于令牌的身份验证