Node.js 特快专递及;具有多个子域的Passport

Node.js 特快专递及;具有多个子域的Passport,node.js,express,passport.js,Node.js,Express,Passport.js,我正在将两个小应用合并为一个,应该通过两个子域访问。为此,我使用模块“express subdomain”。我正在尝试使用Passport,因此当用户登录第一个应用时,他将同时登录两个应用。但是,使用req.isAuthenticated()我确实可以登录“第一个”应用程序,但我不在“第二个”应用程序中 我正在寻找在第一个子域中有passport身份验证并在第二个子域中登录的任何解决方案,包括保留两个Distinct应用程序(如果需要) 假设passport为本地策略以及路由器和应用程序的其余部

我正在将两个小应用合并为一个,应该通过两个子域访问。为此,我使用模块“express subdomain”。我正在尝试使用Passport,因此当用户登录第一个应用时,他将同时登录两个应用。但是,使用
req.isAuthenticated()
我确实可以登录“第一个”应用程序,但我不在“第二个”应用程序中

我正在寻找在第一个子域中有passport身份验证并在第二个子域中登录的任何解决方案,包括保留两个Distinct应用程序(如果需要)

假设passport为本地策略以及路由器和应用程序的其余部分正确配置。下面是它的外观:

app.js

// <- requires etc

var passport = require('./configurePassport.js')(require('passport'));

var app = express();

app.use(cookieParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(expressSession({
    secret: 'bestSecretEver',
    resave: false,
    saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
// and others

var firstRouter = express.Router();
firstRouter.use('/public', express.static(__dirname + '/first/public'));
firstRouter.use(favicon(__dirname + '/first/public/favicon.ico'));

// <- setting first router's GET, POST etc

app.use(subdomain('sub1', firstRouter)); // for sub1.example.com

var secondRouter = express.Router();
secondRouter.use('/public', express.static(__dirname + '/second/public'));
secondRouter.use(favicon(__dirname + '/second/public/favicon.ico'));

// <- setting second router's GET, POST etc

app.use(subdomain('sub2', secondRouter)); // for sub2.example.com

/查看保存cookie以进行身份验证的位置。确保已将其保存到根域。ie:
*.example.com
和not
sub1.example.com

您如何保存您的身份验证令牌?抱歉,我将对其进行精确说明。我正在马上编辑它。(我想我使用的是express session?)查看保存cookie以进行身份验证的位置。确保已将其保存到根域。ie:
*.example.com
而不是
sub1.example.com
就是这样!我更改了expressSession配置,添加了一个
cookie:{domain:'.example.com'}
(example.com是我的域),现在可以正常工作了。谢谢!将下面的答案标记为已完成!