我正在使用node.js + passport并尝试弄清楚如何在父域上设置cookie,以便子域可以使用它。
用户登录Domain.com 用户然后去Sub.Domain.com ...他应该仍然登录。
如何在父域上设置cookie?这就是我现在所拥有的。
app.use(express.session({
secret: 'XXXXX',
store: new mongoStore({ url: app.get('mongodb-uri') })
}));
app.use(passport.initialize());
app.use(passport.session());
答案 0 :(得分:3)
您需要做的是设置会话cookie的域。你应该能够这样做:
app.use(express.session({
secret: <session_secret> ,
store: <session store> ,
cookie: {
path: '/',
domain: '.domain.com',
maxAge: 1000 * 60 * 24 // 24 hours
}
}))
请注意,域名设置为.domain.com(开头的点),该域名应该可供所有子域使用。
答案 1 :(得分:0)
注意:如果使用Express 4和新的cookie会话模块,代码看起来像
{
secret: <session_secret> ,
store: <session store> ,
domain: '.domain.com',
}
这就是我,但API已经改变了。