Express / Passport本地身份验证多个服务器

时间:2014-04-24 12:38:25

标签: angularjs authentication express redis passport.js

我正在使用角度js,表达js和护照js构建实时Web应用程序。

护照验证在主服务器上正常运行。我已经在快速js中编写了第二个日志记录服务器,并希望使用它来简单地从角度js服务接收http POST请求。这将使客户端异常/错误得以记录并可用于调试目的等。我不想在主服务器中引入依赖关系,以便在逻辑上将其分开。

我正在考虑为护照/快速会话引入redis存储,以便日志记录服务器也需要进行身份验证,并且可以在两台服务器之间共享会话。我不知道如何实现此会话共享。

在这种情况下,最佳做法是跨两台服务器进行身份验证 - 我不希望用户必须登录两次。

1 个答案:

答案 0 :(得分:0)

你把它钉了下来。 redis商店是的。不需要手动实施。让两台服务器使用相同的redis服务器实例(即cloud redis,仅在一台机器上本地安装等)。快速会话有能力使用redis商店(看看connect-redis包)。共享是自动完成的,因为两个堆栈都将与同一个redis商店进行通信。

它的工作方式细节,当用户auth时,connect.sid cookie被写入浏览器。然后后续请求(即到第二服务器)将发送此cookie。第二个服务器看到SID并查找它并找到它并从redis中检索相同的会话。

它实施了。