【问题标题】:Express/Passport local authentication multiple serversExpress/Passport 本地认证多台服务器
【发布时间】:2014-06-09 18:03:27
【问题描述】:

我正在使用 angular js、express js 和 passport js 构建一个实时 Web 应用程序。

护照身份验证在主服务器上运行良好。我也在 express js 中编写了第二个日志服务器,并希望使用它来简单地接收来自 angular js 服务的 http POST 请求。这将使客户端异常/错误能够被记录并用于调试等目的。我不想引入对主服务器日志记录的依赖,以便在逻辑上分开。

我正在考虑为护照/快速会话引入一个 redis 存储,以便日志服务器也接受身份验证,并且可以在两个服务器之间共享会话。我不确定如何实现此会话共享。

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

【问题讨论】:

    标签: angularjs authentication express redis passport.js


    【解决方案1】:

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

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

    这是无需干预的实施。

    【讨论】:

    • 太好了,非常感谢。得到它的工作。在你的帮助下,我能够做到这一点。干杯。
    猜你喜欢
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2018-01-09
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多