node.js护照会话cookie域

时间:2014-04-20 03:26:59

标签: node.js passport.js

我正在使用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());

2 个答案:

答案 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已经改变了。