【发布时间】:2022-08-18 22:56:01
【问题描述】:
这个Reddit 帖子建议进行“在signOut 事件中的api 调用。后端处理其余部分。”
当然,让我们写它:
await fetch(\'/api/auth/signout\', { method: \"POST\" });
除非请求通过302 重定向到GET /api/auth/signout?csrf=true,后者又重定向到GET /auth/sign-out,我的自定义注销页面;用户未注销。
documentation 确实指定了“POST 提交需要来自 /api/auth/csrf\ 的 CSRF 令牌”,但是没有使用示例。
点击 /api/auth/csrf 我得到一个 JSON 响应,所以我只是将该值用作初始 POST 请求的主体:
await fetch(\'/api/auth/signout\', {
method: \"POST\",
body: await fetch(\'/api/auth/csrf\').then(rs => rs.text())
});
它确实发出了请求,然后添加了{\"csrfToken\":...} 的有效负载,但重定向相同,并且用户仍未注销。
我的目标是在调用初始 POST 请求时退出而不被重定向。那可能吗?