«

在ExpressJS(NodeJS)中设置二级域名跨域共享Cookie

emer 发布于 2018-11-21 14:57   2247 次阅读     


使用expressjs和mongostore来管理session。下面是expressjs中的设置。

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

我已经在上面设置了cookie路径。但是它还是把Cookie设置到了子域名 sub.domain.com 中。 如何将其设置到主域名 .domain.com 中? 

解决方案: 这样设置即可。


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


注* 使用数据库mongostore来集中管理session,并在各个子域名跨域共享Cookies (SessionID),即可实现为每一个子域分配一个独立的node.js Web服务器,可以实现一定程度上的负载均衡。