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 后,一切都按预期运行。
我想在多个服务器之间共享护照身份验证...
这是我的情况:
服务器 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 后,一切都按预期运行。