2015-08-28 90 views
0

我将我的应用分为3轮结构。我的服务器在node.js上运行,前端是一个角度应用程序。我正在使用护照进行用户登录和身份验证。我注意到的行为是我的护照登录无法在前端应用上保持跨域会话。Passport.js维护CROS域会话

我的服务器运行在localhost:3000和localhost:9000上的前端应用程序。

我试图通过给选项配置CROS请求快递:

app.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'); 
    if ('OPTIONS' == req.method) { 
      res.send(200); 
     } else { 
      next(); 
     } 
    }); 

也尽量的CRO模块中的NodeJS但没有制定出对我这样。任何帮助或建议表示赞赏。

回答

0

CROS!= CORS

https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

CORS用于只允许从特定域的请求即req.headers.origin

您必须使用passportjs配置前端应用程序以维护会话。

+0

在我的应用程序会话表中,护照正在为每个请求创建新的会话变量,我如何配置角度上的passportJs应用程序来维护服务器和前端应用程序上的相同会话任何建议 –

+0

http://stackoverflow.com/questions/ 10164312/node-js-express-js-passport-js-stay-authenticated-between-server-restart – Vishnu

+0

http://stackoverflow.com/questions/13617471/shared-sessions-between-node-apps – Vishnu