为什么document.cookie为空字符串

问题描述

I call Set-Cookie on the serverside

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在两个浏览器中都为空字符串?

解决方法

Cookie在“应用程序”>“ Cookies”中具有/api路径,并且可以从/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=/`)