使用node passport.js用于多个网站

时间:2014-08-05 04:12:22

标签: javascript angularjs node.js angular-ui-router passport.js

我正在编写node.js服务器以充当另一台服务器的REST服务器代理。基本上,它将允许多个网站进行身份验证,并为他们提供REST API以供其使用。

我将使用passport.js。

以下是教程中我有疑问的相关部分:

app.post('/login',
        passport.authenticate('local', { successRedirect: '/',
                                        failureRedirect: '/login'
                                        })
);

有没有办法重定向到网站的根目录?该网站没有与节点服务器相同的URL,那么如何告诉它重定向到网站的根目录?或者我是否必须在网站的UI路由器中实现该逻辑(我在每个网站中使用angularJS作为框架),并且只检查返回的用户对象?

我是否也在网站的UI路由器中处理会话到期?

如果我这样做,我怎样才能从服务器端使会话无效?

1 个答案:

答案 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();

如果您有任何疑问,请与我们联系!