Summary
Once 设置cookie标头在响应中发送,在 cookie 可见之前需要另一个请求handle()
函数在hooks.ts
file.
Example
- 用户将用户名和密码发布到登录端点;
- Enpoint 用 set 响应访问令牌cookie 头;
- 应将用户重定向到受保护的页面。 (FAILS)
它失败是因为 authguard 检查 cookie 是否存在,但此时从代码端看不到它,只能在浏览器端看到。
-
刷新页面
-
用户现在可以重定向到受保护的页面。
最低限度的繁殖 https://github.com/rudgalvis/MR-svelte-cookie
它具有虚拟登录/注销功能和受保护的用户配置文件。还有服务器端控制台日志显示 cookielags在钩子中被识别。
正如评论中提到的,您的服务器返回 HTTP 状态代码 200,该状态代码在登录后不会重定向客户端。由于状态代码,浏览器假设它已经到达最终目的地。
在这种情况下,最佳实践是使用状态代码 302:
修改/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`
}
}
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)