【发布时间】:2014-04-03 10:14:29
【问题描述】:
我有一个 node.js (sail.js) 项目作为服务器端,backbone.marionette 作为客户端。
我正在使用护照来确定用户是否经过身份验证。
module.exports = function(req, res, next)
{
if (req.isAuthenticated())
return next();
else
res.redirect('/login');
}
我的问题是:
如果当前 url 是:http://localhost:1337/#users(带有来自客户端的#users),并且服务器会话超时,则res.redirect('/login'); 使用客户端 url 重定向页面,如下所示:http://localhost:1337/login#users
有没有办法在没有 #url 的情况下进行重定向?
【问题讨论】:
-
只能去掉客户端的位置哈希,所以重定向到做
window.location.hash = ''的路由,然后重定向到/login -
此代码是服务器代码。
window is not defined -
我意识到,这就是为什么我建议链接到具有 clientside 代码的路由,该代码删除哈希,然后重定向到
/login -
你没有得到它,哈希在服务器端不可用,你必须输出一个包含
window.location.hash = ''的脚本标签,你可以通过链接到输出这样一个脚本的路由来做到这一点标签,删除散列在客户端,然后重定向。
标签: node.js backbone.js sails.js marionette passport.js