我正在从react fetch为auth向node express发出cors请求。我收到cookie头作为响应,但它没有保存在浏览器中,但当我发出另一个请求时,浏览器将发送在先前请求中收到的先前cookie。
注意,这只发生在生产。一切都很好,在开发模式。我谷歌它,并尝试不同的方法添加凭据:“包含”,sameSite无,安全,httpOnly,甚至域,但它不工作。
下面是我的后端代码
if (process.env.NODE_ENV === "production") {
res.cookie('token', token,{
expires: new Date(Date.now() + 864000000), // for 10 days in production only 864000000
sameSite: 'none',
secure:true
}
)
}else{
res.cookie('token', token, {
expires: new Date(Date.now() + 864000000), // for 10 days in production only 864000000
sameSite: 'none',
})
}
这是我用于登录前端代码
const result = await fetch(`${import.meta.env.DEV ? import.meta.env.VITE_BACKEND_DEV_URL : import.meta.env.VITE_BACKEND_URL}/v3/api/user/signin`, {
method: 'POST',
credentials:'include',
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
email,
password
})
})
1条答案
按热度按时间9gm1akwq1#
在一个环境中设置的Cookie将存在于另一个环境中,只要名称相同。
您可以更改名称,例如在非生产环境中为每个cookie附加“-dev”: