如何从服务器重定向,没有客户端的#ur?

时间:2014-03-02 14:01:31

标签: node.js backbone.js sails.js marionette passport.js

我有一个node.js(sail.js)项目作为服务器端,backbone.marionette作为客户端。

我正在使用护照来确定用户是否经过身份验证。

module.exports = function(req, res, next)
{
  if (req.isAuthenticated())
        return next();
  else  
    res.redirect('/login');
}

我的问题是:

如果当前网址为:http://localhost:1337/#users(来自客户端的#users),并且服务器会话超时,则res.redirect('/login');会使用客户端网址重定向网页,如下所示:{{1} }

有没有办法在没有#url的情况下重定向?

2 个答案:

答案 0 :(得分:1)

发现了一个错觉:

我们可以通过重定向到/login#来解决此问题。这应该可以解决问题,并从URL中删除哈希值。

答案 1 :(得分:0)

#part未发送到服务器,#由marionette添加。 marionette收到302状态并重定向登录并巧妙地尝试恢复#users状态。所以在这种情况下,你不要在服务器中进行重定向,只需要执行res.render(“login”)。