如何在提取后调用后管理重定向请求

时间:2016-05-04 06:40:44

标签: javascript node.js express fetch fetch-api

我正在使用fetch与节点服务器(Express)进行通信。我正在建一个SPA。在每次请求服务器时,我都在检查会话是否有效。如果会话无效,我将从节点重定向到登录页面。问题是。如果会话失效(例如:get / post请求在后台运行而没有页面刷新),请求将以静默方式失败。它没有被重定向。

我对ajax请求也有同样的问题。我所做的是通过检查请求是xhr并接受json。然后发送一个json响应并处理前端的重定向。

GetCurrentProcess

如何使用fetch执行相同的操作。如何使用fetch和node处理重定向。

1 个答案:

答案 0 :(得分:0)

我不确定您的代码是如何确定会话是否有效。看起来您正在测试请求是否是您从浏览器发送的请求,如果是,则使用json进行响应。

在这种情况下何时会触发重定向?如果您总是从浏览器发送请求,它将永远不会进入重定向语句。

您是否尝试过使用护照进行用户身份验证?您可以轻松设置可以包含在所有端点中的中间件,以便在用户尚未登录时重定向每个请求。

例如:

function isLoggedIn(req, res, next) {
    if (req.isAuthenticated())
        return next();
    res.redirect('/');
}

然后在你的api中:

app.get('/yourendpoint', isLoggedIn, function(req, res) {
    /*response here*/
    });
});