У меня проблема с настройкой файлов cookie через express. Я использую Este.js dev stack и я пытаюсь установить cookie в API auth /login route. Вот код, который я использую в /api/v1/auth/login route
res.cookie('token', jwt.token, {expires: new Date(Date.now() + 9999999)});
res.status(200).send({user, token: jwt.token});
В src/server/main.js я зарегистрировал cookie-parser как первое промежуточное программное обеспечение
app.use(cookieParser());
Заголовок ответа для маршрута /api/v1/auth/login содержит
Set-Cookie:token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ..
но cookie не сохраняется в браузере (document.cookie пуст, а также Resources - Cookies вкладка Resources - Cookies в инструментах develepoers пуста) :(
EDIT: Я обнаружил, что когда я вызываю это в /api/v1/auth/login (без вызова res.send или res.json)
res.cookie('token', jwt.token, {expires: new Date(Date.now() + 9999999), httpOnly: false}); next();
то cookie установлен. И заголовок ответа имеет X-Powered-By:Este.js... это устанавливает esteMiddleware в esteMiddleware frontend esteMiddleware part.
Когда я использую res.send
res.cookie('token', jwt.token, {expires: new Date(Date.now() + 9999999), httpOnly: false}).send({user, token: jwt.token});'
next();
то я получаю ошибку Can't set headers after they are sent. потому что используется метод send, поэтому frontend render throw this error.
Но я должен отправить данные из API, так как я могу справиться с этим?
Может кто-нибудь мне помочь? Благодарю!