我可以使用同一个服务器的passport.js会话login到其他服务器吗?

我正在使用express服务器 passport.js和我有在端口3000上运行的示例回购 。

我希望能够像使用示例一样使用端口3000来login护照,并且可以在另外两个运行在不同端口(8000和9000)上的其他节点服务器上创build会话。 所有3台服务器都在本地主机上。

在我想要的其他服务器之一

app.all('*', require('connect-ensure-login') .ensureLoggedIn("http://localhost:3000/login")); 

只有当用户在localhost:3000上login时才能访问整个其他服务器。

用我上面的build议代码,如果我导航到http:// localhost:8000 / somepage ,它将redirect到http:// localhost:3000 /login是否我login在3000或不。 它不会识别我已login3000。

是的你可以。 你只需要他们共享同一个会话存储。 会话存储有大量的选项; 这里是一个相当完整的清单 。 最简单的可能是会话文件存储,因为它不需要你运行任何其他数据库或内存cachinge服务。 您可以将其configuration为使用特定的path来存储会话,以便您可以将所有三台服务器放在同一个位置:

 var session = require( 'express-session' ); var FileStore = require( 'session-file-store' )( session ); app.use( session( { store: new FileStore( { path: '/path/to/shared/session/storage/directory', } ), secret: 'keyboard cat', } ) );