Javascript Node/ExpressJS中域及其子域的cookie

Javascript Node/ExpressJS中域及其子域的cookie,javascript,angularjs,node.js,cookies,subdomain,Javascript,Angularjs,Node.js,Cookies,Subdomain,因此,我试图做的是在domain.com上设置一个cookie,该cookie可用于所有子域。我目前正在使用Express4.x和NodeJS 目前,我可以在主域上设置并获取任何cookie,在我的情况下,它可以通过lvh.me:3000在本地环境中进行测试(允许本地子域) 这就是我的Express.js应用程序的基本外观: // Require all files (express,http,express-session,cookie-parser...) var api = expres

因此,我试图做的是在
domain.com
上设置一个cookie,该cookie可用于所有子域。我目前正在使用Express4.x和NodeJS

目前,我可以在主域上设置并获取任何cookie,在我的情况下,它可以通过
lvh.me:3000在本地环境中进行测试(允许本地子域)

这就是我的Express.js应用程序的基本外观:

// Require all files (express,http,express-session,cookie-parser...)

var api = express()

// Cookie Parser 
api.use(cookieParser());
api.use(session({
    secret: 'yoursecret',
    cookie: {
        path: '/',
        domain: '.lvh.me:3000',
        maxAge: 1000 * 60 * 24, // 24 hours
    },
    resave: true, 
    saveUninitialized: true  
}));

// CORS
api.use(function(req, res, next) {
    res.header('Access-Control-Allow-Credentials', true);
    res.header('Access-Control-Allow-Origin', req.headers.origin);
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept');
    next()
})

// View Engine
api.set('views', './api/views');
api.set('view engine', 'ejs');
api.disable('x-powered-by');

// Stylus
function compile(str, path) {
  return stylus(str).set('filename', path);
}

api.use(stylus.middleware({
  src: './app',
  compile: compile
}));

// Serving Static Content
api.use(express.static('./app'));

// All Routes 
require('../api/routes/test.server.routes.js')(api);

// Router
api.get('*', function(req, res) {
     //res.cookie('remember', 1, { domain : "lvh.me:3000" });
    res.render('index'); // Get all requests to Index. Angular takes over routing. 
});

// Return Application
return api;
通过Cookie解析器
res.Cookie('user','bobby')设置Cookie
对于去
lvh.me:3000/任何东西都可以,但是对于
boddy.lvh:3000/任何东西都可以,Cookies是空的

我是否遗漏了什么,我以为所有子域都可以使用Cookies?我读过一些关于堆栈溢出的文章/帖子,但它们似乎都很过时。非常感谢您的指导或帮助

另一方面,如果我在express文件中设置cookie,它将在整个应用程序中都可用。例如:

// Router
api.get('*', function(req, res) {
    res.cookie('user', 'jim'); // This can be accessed   
    res.render('index'); 
    // Get all requests to Index. Angular takes over routing. 
});

有什么原因吗这在很大程度上是因为它被设置在任何/每个视图上。因此,它仍然留给我最初的问题。

在设置cookie时,如果您的域名
mydomain.com
子域无法访问它。你必须把前导点(例如
.mydomain.com
)。在这种情况下,cookie将在子域间共享

我理解主要的点特性,因为这已经通过api.use()设置好了?其url为lvh.me:3000,我将cookie域设置为.lvh.me:3000,但它似乎无法跨域/子域工作。有什么建议吗?