首页 > 解决方案 > 读取从 nodejs 发送的 cookie

问题描述

我有一个应用程序,我从后端设置 cookie,例如:

res.cookie('Authorization', 'Bearer ' + token, {httOnly: true});

登录后,我尝试读取前端的 cookie:

console.log('cookie', document.cookie)

但是这样做我没有得到任何数据console.log()
如何在我的示例中读取 cookie?

标签: node.jsreactjscookies

解决方案


  • 首先,Authorization是一个请求 http 标头,因此客户端应该是修改该标头的人。

  • 由于您使用cookie来存储 jwt 令牌,因此无需使用Authorizationhttp 标头,因为 cookie 会与后续请求一起自动发送。

  • 您可以只发送一个包含令牌的 cookie。

    res.cookie('jwt', req.token, { httpOnly: true })
    
  • 您可以使用passport.jwt中间件来检查jwtcookie的存在

    const cookieExtractor = function (req: Request) {
    let token = null;
    const cookieName = config.jwt.cookieName;
    if (req && req.cookies) {
      token = req.cookies[cookieName];
    }
    return token;
    };
    

推荐阅读