Cookies PassportJS-如何创建单独的passport.session

Cookies PassportJS-如何创建单独的passport.session,cookies,express,passport.js,Cookies,Express,Passport.js,我的问题与主题有关。 因此,只要我已经有两个单独的passport实例,我就意识到它们都共享相同的cookie,在这里创建: application.use(session({ secret: 'my secret cookie', key: 'usid' })); 我可以使用以下方法再添加一个具有不同名称的cookie: app.use(connect.session({ secret: 'keyboard cat', key: 'rsid' })) 但是,我不清楚如何指导每个passpo

我的问题与主题有关。 因此,只要我已经有两个单独的passport实例,我就意识到它们都共享相同的cookie,在这里创建:

application.use(session({ secret: 'my secret cookie', key: 'usid' }));
我可以使用以下方法再添加一个具有不同名称的cookie:

app.use(connect.session({ secret: 'keyboard cat', key: 'rsid' }))

但是,我不清楚如何指导每个passport使用自己的cookie。

我通过via找到了passport 0.4.0的临时解决方案


passport.\u key=passport.\u sm.\u key='customPassportSessionKey'
您可以通过路由器而不是应用程序来解决此问题。我通过开发类似于AuthBuilder的东西解决了同样的问题,AuthBuilder接收某些参数,每个实例通过这种方式生成一个新的passport

class AuthBuilderService {
    constructor() {
        this.passport = new Passport();
        this.registerSerializers(); // Multiple serializers
        this.registerStrategies(); // Multiple strategies
    }
然后,通过调用authbuilder.addRouter(…),可以使用相同的passport和密钥注册多个路由器(或仅注册一个)

从要保护的路由器:

    routerUsers_1.get('something_1', method)
    routerUsers_2.get('something_2', method2)
    let authBuilder = new AuthBuilderService();    
    authBuilder.addRouter(routerUsers_1, 'login_users_vip.html', '/path/failure_vip/', '/path/success_vip');
    authBuilder.addRouter(routerUsers_2, 'login_users.html', '/path/failure/', '/path/success');


    routerAdmins.get('something', methodAdmin)
    new AuthBuilderService().addRouter(routerAdmins, 'login_admins.html', '/path2/failure/', '/path2/success');
那么express应用程序只需使用每个路由器即可

app.use('path-client-vip', routerUsers_1)
app.use('path-client', routerUsers_2)
app.use('path-admin', routerAdmin)
我在同一个express app server中使用2个webapp(具有不同的用户、登录名和内容),每个webapp使用此AuthBuilderService的不同实例,用于多个路由器,在每个AuthBuilderService实例之间使用不同的passport、会话、策略和序列化器


希望它能帮助别人。

嘿,安吉尔。你能找到解决这个问题的办法吗?我还在努力在我的express应用程序中使用多个passport配置并使其正常工作。谢谢,我也有同样的问题。你有没有找到解决方案或者使用了一些变通方法?有没有人有解决方案?很多裁判都是在某些情况下工作的,但不是我自己的
app.use('path-client-vip', routerUsers_1)
app.use('path-client', routerUsers_2)
app.use('path-admin', routerAdmin)