2015-08-28 130 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