无法使用护照本地策略验证用户身份

时间:2016-11-07 21:11:46

标签: express cookies passport.js middleware setcookie

我正在使用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();
       }
   })  
});

1 个答案:

答案 0 :(得分:1)