node.js - Set-cookie Header 不会为浏览器设置 cookie
问题描述
我正在开发一个基于 React 和 Nodejs 的全栈 Web 应用程序。我将前端部署到 Nelify 并将后端部署到 heroku。它在本地机器上运行良好,但在日志部分部署后出现问题。除了日志记录,一切都运行良好。我猜 res.cookie('w_auth',user.token) 将 jwt 令牌发送到 Web 浏览器,但它没有设置,也没有显示任何错误消息。
这是我将 cookie 发送到浏览器的后端
const cookieOpt = {
maxAge: 60 * 60 * 1000,
domain: front-end domain,
secure: true,
sameSite: 'None',
}
user.generateToken((err, user) => {
if (err) return res.status(400).send(err);;
res.cookie('w_authExp', user.tokenExp, cookieOpt);
res.cookie('w_auth', user.token, cookieOpt).status(200).json({
loginSuccess: true,
userId: user._id,
});
});
前端域是 HTTPS nelify 域。
这是 chrome 开发工具标头中的 set-cookie。
Set-cookie 标头不会为浏览器设置 cookie。我可以看到警报图标,但奇怪的是,它没有显示任何错误消息。
我试图在其中设置标题
// res.setHeader('Access-Control-Allow-Credentials', true); // res.setHeader('Access-Control-Allow-Origin:', front-domain);
和给出httpOnly
选项,cookieOpt
但这些不起作用。有没有人对熨烫有明确的想法?
解决方案
推荐阅读
- javascript - 如何为 ul 列表添加/删除活动类?
- java - 使用opencsv对空白csv文件将csv转换为bean时如何解决运行时异常
- websphere - 如何为这种情况编写 ITX/WTX 规则
- java - 奇偶校验 - 递归 java
- android - 我的应用程序在使用互联网时崩溃,但仅限于 Pie
- java - 在测试环境中禁用 mongoEmbeddedServer
- nginx - 配置 nginx 以在 Web 应用程序中提供 manifest.json 文件
- html - 如何自动高度,div z索引内容的宽度
- regex - Log4cplus:在 gcc 4.8.5 上的过滤器中集成正则表达式
- android - 如何在 Android 中查询 Firebase 数据库