首页 > 解决方案 > Cookie 未保存在浏览器中,但与邮递员一起工作正常

问题描述

好的,所以当后端和前端托管在 Localhost 中时,一切正常

但是当我将后端部署到(Heroku)和前端到(Vercel)HTTPS并将cookie设置为sameSite =“NONE”安全时,浏览器不再设置cookie,但邮递员工作得很好,我尝试了很多CORS 选项不起作用

//后端和前端都包含凭据//

这是后端快速 CORS 配置

///////////// Express cors config ///////////
app.use(
    cors({
        origin: true,
        credentials: true,
        exposedHeaders: ['Set-Cookie'],
        allowedHeaders: [
            'Authorization',
            'Content-Type',
            'membership-id',
            'account-id',
            'X-Requested-With',
            'Accept',
            'Origin',
        ],
    }),
);

曲奇饼

const token = jwt.sign({userID: user._id}, process.env.JWT_SECRET, {
    expiresIn: 900,
});
res.setHeader(
    'Set-Cookie', cookie.serialize('token', token, {
        httpOnly: true,
        sameSite: 'none',
        secure: true,
        maxAge: 900,
        path: '/',
    }),
);

和 axios 的前端

const API = axios.create({
    baseURL: 'https://apiplalapalpl.com',
    withCredentials: true,
  });

const res = await API.post('/api/user/login', { email, password });

这是来自 chrome 的一些图片

https://i.imgur.com/4Mh2l46.png , https://i.imgur.com/USgT2ay.png

请帮忙,我要拔掉我的头发了:(

标签: javascriptnode.jsexpressaxiosnext.js

解决方案


推荐阅读