遵循此SO。
HTTPOnly cookie
存在于获取响应中,但未设置且在浏览器检查器中不可见。
https://localhost:3000
或https://127.0.0.1:3000
(在本地主机上进行本地SSL
设置以进行安全通信)https://api.example.com
和SSL
//Cors config
let domains = new Array();
domains[0] = 'https://localhost:3000';
domains[1] = 'https://127.0.0.1:3000';
let corsOptions = {
origin: domains,
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE, OPTION',
credentials: true,
};
app.use(cors(corsOptions));
// Set-Cookie
res.cookie('jid', refreshToken, {
expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 7),
httpOnly: true,
secure: true,
sameSite: 'None',
path: '/api/v1/login',
});
fetch('https://api.example.com/endpoint', {
method: 'GET',
credentials: 'include',
});
浏览器检查器显示jid
中存在Response headers
cookie:
但是未设置cookie,并且在“存储”标签下看不到该cookie:
这已经在Firefox和Chrome上尝试过,显示出相同的结果。
与SameSite Cookies或Corn相关的控制台上未显示任何错误或警告,因此我认为我们的服务器端配置有效。
与此有关的另一个问题是,如果没有首先设置jid
cookie,该如何在Request headers
中发送它?那是谁来的?
现在无需进行任何更改,看来did
cookie在控制台上在Google Chrome
下可见,但在Firefox
上仍然不存在。