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

Share session between two node apps

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

谢谢。

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

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