Passport:如何在 server1 和 server2 上使用经过身份验证的用户?

Passport: How to use authenticated user on server1 and server2?

我想在多个服务器之间共享护照身份验证...

这是我的情况:

服务器 1:(app1.domain.com) 使用 passportjs 本地策略对用户进行身份验证。使用 cookie-session

服务器 2:(app2.domain.com),我想利用服务器 1 的用户身份验证。

我是这样使用 cookie-session 中间件的:

app.use(
  session({
    domain: `.${config.baseDomain}`,
    cookie: {
      path: '/',
      domain: `.${config.baseDomain}` ,
      maxAge: 60000,
    },
    secret: config.secret,
    signed: true,
    resave: true,    
  })
);

在 Server1 上,生成的 req.session 对象是一行:

 { passport: { user: '5fdb8088ab37a78b980c2e6f' }

在 Server2 上,req.session 看起来更像 req 对象,有数百行。

我认为使用相同的 cookie-session 中间件意味着 req.session 对象将是相同的?

我试图理解每一步,因为我不确定它在哪里中断。

req.session 对象在服务器 1 和服务器 2 上不同的原因是我花了一些时间才找到的东西,尽管它非常简单。

将 cookie-session 隔离为罪魁祸首后,我终于查看了我的 package.json 以发现服务器安装了不同版本的 cookie-session。 (2.0Beta & 1.4.0) 在两台服务器上安装 v1.4.0 后,一切都按预期运行。