我正在编写node.js服务器以充当另一台服务器的REST服务器代理。基本上,它将允许多个网站进行身份验证,并为他们提供REST API以供其使用。
我将使用passport.js。
以下是教程中我有疑问的相关部分:
app.post('/login',
passport.authenticate('local', { successRedirect: '/',
failureRedirect: '/login'
})
);
有没有办法重定向到网站的根目录?该网站没有与节点服务器相同的URL,那么如何告诉它重定向到网站的根目录?或者我是否必须在网站的UI路由器中实现该逻辑(我在每个网站中使用angularJS作为框架),并且只检查返回的用户对象?
我是否也在网站的UI路由器中处理会话到期?
如果我这样做,我怎样才能从服务器端使会话无效?
答案 0 :(得分:1)
让我们打破这个:
how can I invalidate the session from the server side?
使用redis-sessions。整个控制流程是将会话ID和时间戳存储在redis中。然后,您可以每隔n分钟刷新redis以使这些会话无效,然后让服务器检查redis以确保当前会话未过期。这是一个高级描述,这是一个关于保存PHP sessions in Redis的教程,同样的逻辑将映射到你的node.js应用程序。
Is there a way to redirect to the website's root directory?
以下方式通常是我处理重定向的方式:
response.writeHead(200, {
'Location': 'targetwebsite.com/index.html'
});
response.end();
如果您有任何疑问,请与我们联系!