Node.js 未设置安全cookies

Node.js 未设置安全cookies,node.js,express,cookies,netlify,Node.js,Express,Cookies,Netlify,如果我从Netlify调用api,我似乎无法设置cookies,但是对于Postman,它可以工作 我不明白为什么 我的代码如下所示: router.post('/login',localAuth,async(req,res)=>{ //代码执行并返回状态200 返回资源状态(200) .cookie('accessToken',accessToken{ 签名:对, httpOnly:true, 安全:是的, 最大值:15*60*1000, sameSite:'无',/-1){ res.setH

如果我从Netlify调用api,我似乎无法设置cookies,但是对于Postman,它可以工作

我不明白为什么

我的代码如下所示:

router.post('/login',localAuth,async(req,res)=>{
//代码执行并返回状态200
返回资源状态(200)
.cookie('accessToken',accessToken{
签名:对,
httpOnly:true,
安全:是的,
最大值:15*60*1000,
sameSite:'无',/-1){
res.setHeader('Access-Control-Allow-Origin',Origin);
};
res.header(“访问控制允许方法”、“获取、发布、选项、放置、修补、删除”);
res.header(“访问控制允许标头”、“来源、X请求、内容类型、接受、授权”);
res.header(“访问控制允许凭据”、“true”);
next();
});
我一直在为我的SignedCookie,
[Object:null prototype]{}

我注意到这个问题发生在Safari上,而不是Chrome上。 在Chrome中,req同时具有
accessToken
refreshtToken
。 我还注意到,如果我设置
sameSite:'lax'
,那么只有
refreshttoken
被保留。

浏览器正在迁移,使cookie默认为SameSite=Lax。如果需要跨源发送cookie,请使用None指令退出SameSite限制。None指令要求还使用Secure属性

您使用Chrome进行的操作是正确的(通过设置
sameSite=None
secure=true


对于,我认为我们必须手动启用跨站点跟踪首选项。我认为您可以告诉您的用户这样做,或者尝试另一种方法来实现不使用跨站点cookie的功能。

也许您可以尝试启用“跨站点跟踪”在Safari中查看问题是否与此有关。这确实有效。Safari和Chrome都已登录并保留了令牌以供下一次api调用。但我不能期望用户更改该设置,所以我从这里到哪里去修复?最后是一些有效的方法,谢谢。