2016-11-07 92 views
1

我正在使用Ionic2前端和Node/Express/Mongo後端。我配置了Passport本地策略來登錄用戶,並配置了一個簡單的中間件來確定用戶是否通過身份驗證來訪問受限制的終端。當我在Postman客戶端中測試時,這一切都正常。但是,當我從瀏覽器登錄並嘗試訪問端點時失敗。所看到的是瀏覽器(Chrome)在「set-cookie」標題中返回cookie值,但Passport似乎在「Cookie」標題中查找cookie值。我嘗試從我的應用程序的GET請求中設置Cookie標頭,但顯然這是出於安全原因無法完成的。我怎樣才能讓應用程序返回Cookie頭中的cookie值?無法使用護照本地策略對用戶進行身份驗證

Middleware 
function userAuthenticated(req, res, next){ 
    //returns value from Postman; undefined from app  
    console.log(req.get('Cookie').toString()); 
    //returns value from app; undefined from Postman 
    console.log(req.get('set-cookie').toString()); 

    if(req.isAuthenticated()){ 
     return next(); 
    } 
     res.send([{"message":"not logged in"}]); 
} 

Protected endpoint 
router.get('/books', userAuthenticated, function (req, res, next) { 
    Book.find({}, function(err, docs){ 
     if(err) { 
      res.send(err); 
     } else { 
      res.json(docs); 
      //next(); 
     } 
    }) 
}); 

回答

相關問題