【问题标题】:node.js passport session cookie domainnode.js 护照会话 cookie 域
【发布时间】:2014-06-04 09:05:38
【问题描述】:

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

【问题讨论】:

    标签: node.js passport.js


    【解决方案1】:

    注意:如果使用 Express 4 和新的 cookie-session 模块,代码看起来像

    { 
      secret: <session_secret> , 
      store: <session store> , 
      domain: '.domain.com',
    }
    

    这让我有点吃惊,但是 API 已经改变了。

    【讨论】:

    • 这在 Express 4 中对我不起作用;我仍然必须在会话创建对象中使用 cookie : {domain:'.domain.com'} 语法。这与文档相符。
    【解决方案2】:

    您需要做的是设置会话 cookie 的域。你应该可以这样做:

    app.use(express.session({ 
      secret: <session_secret> , 
      store: <session store> ,
      cookie: {
        path: '/',
        domain: '.domain.com',
        maxAge: 1000 * 60 * 24 // 24 hours
      }
    }))
    

    请注意,该域设置为 .domain.com(开头的点),这应该使其可用于所有子域。

    【讨论】:

      猜你喜欢
      • 2014-11-29
      • 2019-06-23
      • 1970-01-01
      • 2012-02-09
      • 2012-05-28
      • 2018-08-11
      • 1970-01-01
      • 2019-12-16
      • 2015-04-24
      相关资源
      最近更新 更多