为什么浏览器不能存储 cookie?



目前,我正在进行一个单独的项目,但我遇到了一个与标题相同的问题。

客户端使用HTTPS进行React。

服务器端是使用HTTPS的Express。并且它们是跨域的。

单击提交按钮时,下面的代码正在运行。

//client side
axios
.post('https://ohmycounty.me/user/signin', {email : "byron@google.com", password: "example", {
withCredentials: true,
})

//server side
app.use(session({
secret: 'example',
resave: false,
saveUninitialized: true,
cookie: {
sameSite: 'none',
secure: true
}
}));
app.use(cors({
origin: ['https://ohmycounty.xyz'],    // client app's url 
credentials: true
}));

const { users } = require('../../models');
module.exports = {
post: (req, res) => {
console.log(req.session.userid)
const {
email,
password
} = req.body;
let session = req.session;
users.findOne({
where: {
email: email,
password: password
}
}).then(result => {
if (!result) res.status(401).send(JSON.stringify({
status: false
}))
else {
session.userid = result.id;
res.status(201).json({
id: result.id
})
}
})
}
}

我在chrome开发工具应用程序上找不到任何connect.sid。

Chrome应用程序

Chrome网络CookieHeaders

正在等待经验丰富的开发人员的建议。

任何意见都可以。

请帮帮我。

当且仅当通过HTTPs进行连接时,应设置安全属性。因此,如果您将其更改为false,那么它应该在开发环境中工作。

cookie: {
secure: false
}

来自快速会话文档:

cookie.secure指定"安全集Cookie"属性的布尔值。如果为true,则设置"安全"属性,否则不设置。默认情况下,不会设置"安全"属性。

请注意,将此设置为true时要小心,因为如果浏览器没有HTTPS连接,兼容的客户端将来不会将cookie发送回服务器。

文档链接:https://www.npmjs.com/package/express-session