Sveltekit新创建的Cookie没有显示在钩子的句柄函数中 [英] Sveltekit newly created cookie is not showing in the hook's handle function
本文介绍了Sveltekit新创建的Cookie没有显示在钩子的句柄函数中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
摘要
在响应中发送Set-Cookie标头后,它将接受另一个请求,然后该Cookie才会在hooks.ts
文件的handle()
函数中可见。
示例
- 用户将用户名和密码发布到登录终结点;
- Enpoint使用SETAccess_TokenCookie标头进行响应;
- 应将用户重定向到受保护的页面。(失败)
它失败是因为auth Guard检查Cookie是否存在,但此时无法从代码端看到它,只能在浏览器端看到它。
刷新页面
用户现在可以重定向到受保护的页面。
Minimal reproduction
它具有虚拟登录/注销功能和受保护的用户配置文件。还有服务器端控制台日志,它显示Cookie滞后于以在挂钩中识别。http
如评论中所述,您的服务器返回推荐答案状态代码200,该状态代码在登录后不会重定向客户端。由于状态代码,浏览器假定它已到达其最终目标。
在这种情况下,最佳做法是使用状态代码302:Wikipedia
已修改/src/routes/auth/login.ts
import * as cookie from 'cookie';
export const post = (request) => {
return {
status: 302,
headers: {
location: '/',
'set-cookie': `${cookie.serialize('token', 'VALUE_OF_THE_COOKIE'}; path=/; HttpOnly`
}
}
};
export const del = (request) => {
return {
status: 302,
headers: {
location: '/',
'set-cookie': `${cookie.serialize('token', ''}; path=/; HttpOnly; maxAge: 0`
}
}
};
这篇关于Sveltekit新创建的Cookie没有显示在钩子的句柄函数中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文