2016-06-10 104 views
2

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

谢谢。

+3

为什么不把两个应用程序合并成一个? – robertklep

+0

使用挂载进行组合:http://stackoverflow.com/questions/8514106/how-to-mount-express-js-sub-apps – eenagy

回答

0

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

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

+0

我使用express作为我的中间件,而此刻我可以在两个地方都具有相同的认证逻辑。你可能会发布一些示例代码?我正在尝试connect-mongo –

相关问题