Express, passport, nodejs не устанавливаются куки
Имею api сервер: (localhost:3000)
Имею ui сервер: (localhost:3001) P.S там работает express для серверного редеринга и реакт, как ui.
В нем ничего, что касается куков не делал. Все изменения только в api:
express-session:
session({
secret: process.env.COOKIE_KEY,
name : 'session',
cookie: {
path: '/',
httpOnly: true,
maxAge: 2.628e+9, //One month.
//sameSite: "lax",
sameSite: "none",
},
resave: false,
saveUninitialized: false,
rolling: true,
})
);
Также, еще одни куки, для теста, таким способом:
res.cookie('cookie_token', { maxAge: 900000 })
CORS:
const corsOptions = {
origin: "http://localhost:3001",
methods: "GET,HEAD,PUT,POST,DELETE,OPTIONS",
credentials: true,
}
app.use(cors(corsOptions));
Теперь делаю запрос c формы, firefox: вот, что содержит req.header:
{
host: '127.0.0.1:3000',
'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:82.1) Gecko/20100101 Firefox/82.1',
accept: 'application/json, text/plain, */*',
'accept-language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
'accept-encoding': 'gzip, deflate',
'content-type': 'application/json;charset=utf-8',
'content-length': '55',
origin: 'http://localhost:3001',
dnt: '1',
connection: 'keep-alive',
referer: 'http://localhost:3001/',
cookie: 'cookie_token=j%3A%7B%22maxAge%22%3A900000%7D; session=s%3A6hncKqEfwaom0qaG-HrO4Qn9pcvCnjph.6SMLqyYRABHEnLLWvomJMpEYV3rV8kgE4MRDcDD5MwE'
}
Теперь, пример ответа:
POST http://127.0.0.1:3000/api/login
HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://localhost:3001
Vary: Origin
Access-Control-Allow-Credentials: true
Set-Cookie: cookie_token=j%3A%7B%22maxAge%22%3A900000%7D; Path=/
Set-Cookie: session=s%3AfTf50Et-3FwFbqb0JajgMteTiT0CPImV.2HviB3XIiMb2Hfx89Z97nV2ScO1L1kC7JsXbpJE9d1I; Path=/; Expires=Fri, 06 Nov 2020 22:48:10 GMT; HttpOnly; SameSite=None
Content-Type: application/json; charset=utf-8
Content-Length: 4
ETag: W/"4-X/5TO4MPCKAyY0ipFgr6/IraRNs"
Date: Wed, 07 Oct 2020 12:48:10 GMT
Connection: keep-alive
Куки в браузер не сетятся (не видны в хранилище), хотя, в случае с firefox - заголовок прилетает. Firefox пишет:
Cookie “cookie_token” will be soon rejected because it has the “SameSite” attribute set to “None” or an invalid value, without the “secure” attribute. To know more about the “SameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite
Для одних куки - верно, в них нет "SameSite", но со вторыми то все ок.
Хром ругается только на те, которые не имеют "SameSite", но на сервер заголовок cookie не отправляет.