在两个节点应用之间共享会话

时间:2016-06-10 20:33:01

标签: node.js mongodb passport.js

我有一个使用passport-local-mongoose进行身份验证的节点应用程序。我有第二个节点应用,它在第一个应用的iframe中提供。我希望使用第一个应用程序的相同会话保护第二个应用程序中的快速路由,以便用户只登录一次,但第二个应用程序中的快速路由仍然受到保护。两个节点应用程序有没有办法共享会话?或许还有另一种方法?

谢谢。

1 个答案:

答案 0 :(得分:0)

我能想到的最简单的方法是简单地在MongoDB中存储会话。然后,您的第二个应用程序的中间件可以检查针对同一数据库的请求中传递的会话。这种方法的缺点是你必须在2个地方实现一些相同的身份验证逻辑。

也许更好,你可以构建一个专门处理身份验证的第三个微服务。这基本上会包装会话存储并将身份验证逻辑集中在一个地方。其他两个应用程序将使用此服务。这是一个我个人仍在学习的领域,这个网站很有帮助:https://dejanglozic.com/2014/10/07/sharing-micro-service-authentication-using-nginx-passport-and-redis/