使用NodeJS和ExpressJS为域而不是子域设置cookie

Raj*_*aja 21 cookies session-cookies node.js express

我一直在使用expressjs和mongostore进行会话管理.以下是在expressjs中配置存储的代码,

app.configure(function(){
    app.use(express.session({
        secret: conf.secret,
        maxAge: new Date(Date.now() + 3600000),
        cookie: { path: '/' },
        store: new MongoStore(conf.db)
    }));
});
Run Code Online (Sandbox Code Playgroud)

我在上面的代码中提到了cookie路径.但它在sub.domain.com而不是.domain.com中设置cookie.我如何实现这一目标?

小智 28

像这样配置:

app.use(express.session({
    secret: conf.secret,
    cookie: { domain:'.yourdomain.com'},
    store: new MongoStore(conf.sessiondb)
}));
Run Code Online (Sandbox Code Playgroud)

  • 是否可以为多个域设置 cookie?例如 : cookie: { 域名:'.yourdomain1.com','yourdomain2.com}, (2认同)

小智 24

尝试使用以下链接进行配置.

res.cookie('name', 'tobi', { domain: '.example.com', path: '/admin', secure: true });
Run Code Online (Sandbox Code Playgroud)

链接: http ://expressjs.com/api.html#res.cookie

  • 我刚刚尝试了“example.com”并且成功了。里面加一个`.`有什么区别吗? (3认同)
  • 为什么当我只添加这部分“domain: '.example.com'”时,没有添加cookie,而当我删除它时,却添加了cookie? (2认同)