【发布时间】:2019-08-22 23:23:43
【问题描述】:
我有一个 express graphql 端点,可以通过${host}/api/graphql 的 POST 访问。
在该路由上,我有身份验证中间件,如果用户未登录,我想重定向到登录页面。
看起来有点像。
const authCheck = (req, res, next) => {
const referringUrl = req.get('referer');
try {
const token = req.cookies.Auth;
jwt.verify(token, process.env.AUTH_PRIVATE_KEY);
next();
} catch(err) {
res.redirect(302, `/login?redirect=${referringUrl}`);
}
}
起初我将它作为响应状态代码 307,它在 GET 请求上运行良好。浏览器按预期将页面更改为referringUrl。
但是对于 Post 请求,使用状态 307 会导致浏览器重定向使用 post 方法。好的,所以我切换到 302。现在它发送了一个 get 请求,但实际上并没有更改浏览器中的 url。
如何从服务器端完成此功能?
提前致谢。
【问题讨论】: