问题描述
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 }))
}
-
jwtToken cookie shown on request & response
Set-Cookie:jwtToken = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImNocmlzLmNhcnJpbmd0b25AZ2xldy5pbyIsImlhdCI6MTU5YA7NaExDy7E7Y7DE7YKDY7E7D5E7N5E7B6B6B6B6B6C5C5C5C4C5B5B Max-Age = 86400;
我已经尝试使用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=/`)