如何使用 Cookie 进行存储 jwt 令牌用户认证?

Posted

技术标签:

【中文标题】如何使用 Cookie 进行存储 jwt 令牌用户认证?【英文标题】:How to use Cookie for store jwt token user authentication? 【发布时间】:2021-03-10 06:41:28 【问题描述】:

我用 reactjs 做了一个 Jwt 代币项目。所以我使用本地存储来记录 jwt 令牌身份验证,以便延迟检索。

我在帖子中记录了所有工作:https://loizenai.com/reactjs-jwt-authentication-example/

但是,我的同事告诉我,将 jwt 令牌保存在本地存储中并不安全。 有什么建议给我为什么,并给出一个正确的解决方案!

非常感谢!

【问题讨论】:

【参考方案1】:

服务器应生成一个 jwt 令牌并将其作为 cookie 返回给您的客户端:

const maxAge = 3 * 24 * 60 * 60; // 3天

return res.cookie('jwtToken', token, 最大年龄:最大年龄 * 1000, httpOnly:是的, );

客户:

import Cookies from 'js-cookie';
import jwtDecode from 'jwt-decode';

 const authUser = () => 
    const token = Cookies.get('jwtToken');
    let isAuth;

    if (token) 
      const decodedToken = jwtDecode(token);
      if (decodedToken.id) isAuth = true;
      else isAuth = false;
     else 
      // console.log('jwt cookie not available');
      isAuth = false;
    
    return isAuth;
  ;

【讨论】:

非常感谢!使用 cookie 对 Web 应用程序的安全性真的很好吗? stormpath.com/blog/…

以上是关于如何使用 Cookie 进行存储 jwt 令牌用户认证?的主要内容,如果未能解决你的问题,请参考以下文章

如何存储 JWT refreshToken cookie 响应

我们如何将 JWT 令牌存储在仅限 Http 的 cookie 中?

如何使用标头中的用户 JWT 令牌转发授权并将其与 cookie 中的 JWT 令牌进行比较以验证用户?

将 JWT 令牌存储在 cookie 中

在 cookie 中存储 JWT 令牌后,如何在 ASP.NET Core 3.1 中破坏该 cookie 并获取信息

ReactJS 和 DRF:如何将 JWT 令牌存储在 HTTPonly cookie 中?