node.js - 当 nodejs 服务器不在本地主机上时未设置 Cookie
问题描述
我有一个 ReactJS 前端和一个 NodeJS 后端。前端从 NodeJS 调用登录 API,它返回一个带有 JWT 令牌的 cookie,该令牌将用于其他调用。我已经对其进行了测试,当前端和后端都在本地主机上运行时它可以工作。
我使用过邮递员并调用了相同的 API。一个在 localhost 上运行,一个在 AWS EC2 上运行。两者都返回相同的响应,但是,在 EC2 上运行的响应没有设置 cookie。两者都存在 set-cookie 标头。
我已经包含了 cors 配置。
var corsOptions = {
origin: ['http://localhost:3001'],
credentials: true
}
app.use(cors(corsOptions));
发现问题:
原来 safari 阻止了 cookie。iOS 上的 Chrome 也受此影响。关闭 safari 偏好设置上的“防止跨站点跟踪”选项解决了这个问题
解决方案
尝试使用完整链接向 API 发送请求
axios.post('https://mysite/api/v1/login', {email,password,...})
推荐阅读
- jquery - 同时转换 top 和 translate 会导致不对齐,看起来像不匹配的缓动(但不是)
- python-3.x - Python - 现有文本文件的 try/except 方法
- pyspark - PySpark 中具有非重复值的小部件
- yaml - 使用值数组重复 GitHub Actions 工作流程中的步骤
- java - Kafka SpringBoot StreamListener - 如何按顺序消费多个主题?
- c# - 修改 lambda 表达式
> 到表达式 以 LINQ to Entities 安全方式 - c# - 给定一个类型,你如何确定它被装箱为什么类型?
- python - 其他列条件下 groupby 数据帧中的交换计数
- kubernetes - 如何使用请求标头作为 Traefik 入口控制器的入口点地址的路径变量
- matlab - 使用刚性变换拟合图像