【发布时间】:2021-10-19 00:46:44
【问题描述】:
如何全局处理来自外部 API 的 401 错误?
首先,我的设置:
- 当用户登录时,我设置了一个
jwtcookie,将一个jwt属性写入session存储区(来自$app/stores),然后重定向到网站的受保护部分。 - 在
hooks.js中,我有一个handle函数,它基本上执行request.locals.jwt = cookies.jwt,然后是一个getSession函数,它返回{ jwt: locals.jwt } - 在我对受保护页面发出的每个
fetch请求时,我都会访问并使用session.jwt将令牌发送到 API。
整个设置都有效。如果用户退出,我可以写一个空的 JWT cookie 并清除 $session.jwt 值,重定向回主页,完成。
但我没有办法添加全局 401 处理程序?我想要做的是清除 JWT cookie 并重定向到登录页面。在根 __error.svelte 中执行此操作似乎是显而易见的地方,但如果在 SSR 期间触发错误,那么显然我无法对 cookie 执行任何操作,并且 __error.svelte 不会在 browser 是 @ 的情况下第二次运行987654336@.
【问题讨论】:
-
您找到解决方案了吗?我有一个类似的场景,我需要从外部 API 捕获 402 错误并显示错误页面,但我很难理解这是如何完成的。
-
还没有,很遗憾。
标签: sveltekit