title: Passport js fails to maintain session in cross-domain
body: <p>I am using passport JS, express and mongoose to make an API. When I test it in same domain it maintain session and works fine. But in cross domain it fails. Any clue how can i maintain the session in cross domain using the same configuration. Following is the code</p>
  
  <pre><code> allowCrossDomain = function(req, res, next) {
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
      res.header("Access-Control-Allow-Headers", req.headers["access-control-request-headers"]);
      // res.header("Access-Control-Allow-Credentials", "true");
      if ("OPTIONS" == req.method) {
          res.send(200);
      } else {
          next();
      }
  
    //allow all crossDomain request
  app.use(allowCrossDomain);
  
  //session handling
  app.use(express.cookieParser("gallery"));
  app.use(express.session());
  app.use(passport.initialize());
  app.use(passport.session());
  
  app.use(function(req, res, next) {
      // check if client sent cookie
      var cookie = req.cookies.cokkieName;
      if (cookie === undefined) {
          //set up cookie here by a random number
          });
      }
      next(); // &lt;-- important!
  });
  passport.use(new LocalStrategy({
      usernameField: "email"
  },
  function(email, password, done) {
      User.authenticate(email, password, function(err, reply) {
         //authenticate user and call the callback
              return done(err, false);
  
      });
  }));
  
  
  passport.serializeUser(function(user, done) {
  return done(null, user._id);
  });
  
  
  passport.deserializeUser(function(id, done) {
  //find user via id and return the user details
  return done(null, user._id);
  });
  
     app.post("/login", function(req, res, next) {
      passport.authenticate("local",
          function(err, data, info) {
              //custom callback
              user.getProfile(req, res, next, err, data, info);
          })(req, res, next);
  });
  </code></pre>