当前位置: 首页 > 知识库问答 >
问题:

如何在React/Next.js应用程序中安全地存储JWT令牌?

谢宸
2023-03-14
const handleSubmitLogin = evt => {
evt.preventDefault();
var cart = new Cart();

var request = new NFRequest();
var response = request.api(HTTP_METHOD.POST, '/auth', {
    'email_address': allValuesLogin.email_login,
    'password': allValuesLogin.password_login,
    'cart_list': cart.getCartPostData(),
});
response.then((res) => {
    if (res.type === 'success') {
        window.$token = res.data.token
        setLoginSuccess('Successfully Login')
        setTimeout(()=> {
            setLoginSuccess('');
        }, 3000)
        cart.handle({ action_type: "RESET_ITEMS" });
        Router.push('/account')
    } else {
        setLoginError('Wrong Email or Password')
        setTimeout(()=> {
            setLoginError('');
        }, 3000);
    }
});
}

这里存储JWT令牌:窗口。$token=res.data.token

谢谢你。

共有1个答案

韶亮
2023-03-14

如何储存由你决定。通常,这是最安全到最不安全的:

  1. 浏览器内存
  2. 仅限于HTTP的cookie
  3. 本地存储
  4. 会话存储/cookie

最重要的是确保您的网站受到保护,免受XSS和CSRF攻击。

 类似资料:
  • 我熟悉Web存储API和cookies,但是我不知道存储身份验证令牌最安全的方式是什么。我想知道这是否会破坏任何第三方库。 我想要一份详尽的可用方法列表,列出每种方法的优缺点,最重要的是最好的方法(如果有的话)。

  • 我目前正在使用ReactJS构建一个单页应用程序。 我读到不使用的原因之一是因为XSS漏洞。 由于 React 会转义所有用户输入,现在使用 是否安全?

  • 在安全和身份验证策略方面,我完全是个笨蛋。所以我阅读了这篇关于“基于令牌的身份验证”的文章:https://scotch.io/tutorials/the-ins-and-out-of-token-based-authentication > 我不明白为什么中间人(或黑客)不能看到客户端发送的令牌,并使用令牌冒充该客户端/个人来检索资源?在这种意义上,什么使基于JSON Web令牌/OAuth2的

  • 我正在用Django和angular构建一个应用程序。目前,我正在本地存储上存储后端发布的JWT。但是,我担心XSS攻击。我应该使用仅HTTP cookie存储令牌吗?我还考虑将令牌存储在auth服务类的变量字段中。但我不能完全确定angular是否在整个应用程序中共享该服务。我的身份验证服务是否只有一个实例?

  • 我正在尝试使用 GraphQL 使用 JWT 对用户进行身份验证。登录用户后,我会收到令牌作为 JSON 响应和存储刷新令牌的 httponly cookie。(服务器端使用的是销售核心) 从Saleor的文档和其他一些博客帖子中,我假设这个响应cookie现在应该存储在浏览器中,每当我需要刷新令牌时,cookie refreshToken将用于验证我的请求。然而,当我在开发工具中将选项卡切换到“

  • 在阅读了以下内容之后:JWT:什么是好的密钥,以及如何将其存储在node.js/express应用程序中?关于如何存储“密钥”以分配JWT令牌。我有安全问题。我的数据(消息,用户名等...)将被加密(在数据库中),只有授权用户才能解密(基于他们的私钥)。由于JWT令牌是使用存储在服务器上的1个“秘密密钥”生成的,所以如果攻击者获得了“秘密密钥”并获得了数据库的控制权,则可以伪造令牌,因此可以绕过“