Почему document.cookie это пустая строка?

Я вызываю Set-Cookie на стороне сервера

export async function post (req, res, next) {
  const jwtToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImNocmlzLmNhcnJpbmd0b25AZ2xldy5pbyIsImlhdCI6MTU5OTA1NDcxNn0.NaEO1ywtCsD55oKb7JSaQbtzidySiy7Bld7Bs63_wuU'
  res.setHeader('Content-Type', 'application/json')
  res.setHeader('Set-Cookie', `jwtToken=${ jwtToken }; Max-Age=86400;`)
  res.end(JSON.stringify({ jwtToken }))
 }

Я пробовал браузеры Brave и Chrome, пожалуйста, почему document.cookie в обоих браузерах пустая строка?


person Chris Carrington    schedule 02.09.2020    source источник


Ответы (1)


Файл cookie имеет путь /api в Application › Cookies и доступен по пути /sign-in-with-token.

Если файл cookie установлен с помощью path=/admin, он отображается на страницах /admin и /admin/something, но не на /home или /adminpage.

https://javascript.info/cookie#path

Может быть, давайте попробуем явно указать путь к /:

res.setHeader('Set-Cookie', `jwtToken=${ jwtToken }; Max-Age=86400; Path=/`)
person Łukasz K    schedule 03.09.2020