无法在其他域上设置Cookie。表达和反应 [英] Unable to set cookie on a different domain. Express and React

查看:0
本文介绍了无法在其他域上设置Cookie。表达和反应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的后端托管在一台服务器上,例如ackend.vercel.app,而前端托管在另一台服务器上,例如Frontend.vercel.app

每当用户向/login路由发送请求时,我将Cookie设置如下:

const setCookie = (req, res, token) => {
  res.cookie('jwt', token, {
    expires: new Date(Date.now() + process.env.JWT_COOKIE_EXPIRES_IN * 24 * 60 * 60 * 1000)
  });
};

在前端,我使用axios向backend.vercel.app/login路由发送请求,{withCredentials: true}

但是,即使在成功登录之后,也没有设置Cookie。

cookie在后端API中,但不在前端: Image of available cookies

我错过了什么?

推荐答案

更新: 我通过在登录请求中手动指定method: 'POST'修复了此问题。 并且,在后台使用了这个中间件:

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Credentials', true);
  res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,UPDATE,OPTIONS');
  res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept');
  next();
});

多亏了Kenneth Lew的评论,我还应用了CORS配置。

干杯!

这篇关于无法在其他域上设置Cookie。表达和反应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆