node.js - 为什么 Chrome 不在生产中设置 cookie
问题描述
我有一个正在生产的应用程序,有时会在 Chrome 中设置 cookie,有时不会。我在后端使用nodejs。这不会发生在 Firefox 中,只有 Chrome。难道我做错了什么?最近我加了
this.app.use(cors({ origin: true, credentials: true }));
但它根本没有帮助。
设置cookie的代码:
exports.oauthLogin = async (req, res) => {
if (!req.query.token) {
return res.status(400).send({ error: "No token provided" });
}
const settings = await AppSettings.findOne();
const response = await checkToken({
token: req.query.token,
serverUrl: settings.oauthServerUrl,
clientId: settings.oauthClientId,
clientSecret: settings.oauthClientSecret,
});
if (response.error) {
return res.redirect("/");
}
const { _id, displayName, email } = response.user;
let user = await User.findOne({ email: email });
if (!user) {
user = new User({
displayName,
email,
oauthId: _id,
accessLevel: "User",
});
await user.save();
}
const jwtUserData = {
userId: user._id,
userAccessLevel: user.accessLevel,
};
const token = jwt.sign(jwtUserData, process.env.JWT_SECRET);
res.cookie("token", token);
return res.redirect(req.query.redirectUrl ? req.query.redirectUrl : "/");
};
解决方案
推荐阅读
- firebase - 使用自定义域的功能进行托管重写不起作用
- java - 骆驼路线未得到识别,在运行应用程序时,启动了 0 条路线中的 0 条
- tensorflow - 为什么 keras 中的 accuracy 和 binary_accuracy 有相同的结果?
- node.js - 当站点项目文件上传到服务器时,如果项目的节点模块通常添加到.gitignore,它们如何仍然工作?
- c++ - 基于策略的设计 - 有条件地使用基类(函数)
- javascript - 获取包含所有对象特定值的数组
- kotlin - 这个 distinctBy 方法有什么作用?
- devise - “注册”不适用于带有 Devise gem 的 Ruby on Rails 6 应用程序的移动设备
- python - Wxpython:在单元格内键入时将“+”链接到选项卡功能?
- c++ - 如何访问 gdb 中 std::set 元素的值?