Node.js如何在同一个应用程序中与子域共享passportjs登录会话?

问题描述 投票:0回答:1

所以我有一个应用程序,我正在使用npm子域,因此常规快速路由伪造为子域路由。

// use fake subdomain routes
app.use(subdomain({ base : 'localhost', removeWWW : true }));

// this looks like app.localhost:9200/login
router.get('/subdomain/app/login', login.login);

// then this posts to app.localhost:9200/app_login
router.post('/subdomain/app/app_login', passport.authenticate('local-login', {
      successRedirect : '/app_login_success',
      failureRedirect : '/app_login_failure',
      failureFlash : true
}));

当我通过app.localhost:9200登录时,我必须重新登录localhost:9200

登录一次并在两个路由中激活会话有哪些选项和解决方案?

node.js express subdomain passport.js
1个回答
0
投票

您可以使用JSON Web令牌(JWT),这是一种处理本地身份验证的相当标准的方法。 实质上,您将创建一个包含用户凭据(例如ID)的编码令牌,该令牌将在一段时间后自动过期。 您的两台服务器都可以解码此令牌。 然后在您的前端,您只需要在发送到任一域时将标头设置为包含此标记。 请参阅JWT NPM模块 ,您可以在Passport旁边找到无数的指南。

© www.soinside.com 2019 - 2024. All rights reserved.