【问题标题】:Can't set cookie with Node.js Express无法使用 Node.js Express 设置 cookie
【发布时间】:2021-09-18 20:44:25
【问题描述】:

无法从我的 ayth 控制器设置 cookie,不明白为什么。 如果我从文件夹 app.js 设置一切都很好。

const createSendToken = (user, statusCode, res) => {
  const token = signToken(user._id);
  const cookieOptions = {
    expires: new Date(Date.now() + process.env.JWT_COOKIE_EXPIRES_IN * 24 * 60 * 60 * 1000),
    secure: false,
  };
  if (process.env.NODE_ENV === 'production') cookieOptions.secure = true;
  user.password = undefined;

  res.cookie('jwt', token, cookieOptions);

  res.status(statusCode).json({
    status: 'success',
    token,
    data: {
      user,
    },
  });
};

【问题讨论】:

    标签: javascript node.js express cookies backend


    【解决方案1】:

    你用过 cookie-parser 吗? 因为到目前为止 cookie 解析器是一个单独的 npm 包,所以不要使用

    const cookieParser = require('cookie-parser');
    app.use(cookieParser());
    

    【讨论】:

    • 是的,我在 app.js 中使用它
    【解决方案2】:

    解决了我的问题

    const cookieOptions = {
      expires: new Date(Date.now() + process.env.JWT_COOKIE_EXPIRES_IN * 24 * 60 * 60 * 1000),
      secure: true,
      sameSite: 'none',
    };
    

    【讨论】:

    • 解释解决您问题的原因。
    猜你喜欢
    • 2021-03-30
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多