2016-02-25 124 views
0

我正面臨護照本地貓鼬模塊的問題。我有一個帶有登錄和註冊頁面的經典身份驗證例程,以及成功輸入憑據後的主頁重定向。 Basicaly,但這兩函數之間發生:登錄後NodeJS護照認證失敗

router.post('/login', passport.authenticate('local', { 
    successRedirect: '/home', 
    failureRedirect: '/login' 
})); 

// some code 

router.get('/:pagename', function(req, res, next) { 
    passport.authenticate('local', function(err, user, info) { 
     if (err) { return next(err); } 
     if (!user) { return res.redirect('/login'); } 
     req.logIn(user, function(err) { 
      if (err) { return next(err); } 
      var pageName = req.params.pagename; 
      var data = pageFiller[pageName].getInitialState(); 

      res.render(pageName, data); 
     }); 
    })(req, res, next) 
}); 

我在瀏覽器控制檯看到下面的重定向後已經loged自己

  1. /SomePage的,未通過身份驗證=>重定向到登錄
  2. /login,成功輸入憑證=>重定向到主頁
  3. /首頁,即時重定向登錄頁面
  4. /登錄。

我已經進行了一些測試:

  • 在我已打印用戶2步驟回調函數,以確保它的存在。還可以。
  • 我試圖通過在瀏覽器中輸入url直接訪問/ home。

感謝您提前。

登錄>/home> /登錄。

回答

0

好的,我的壞...我對此很新。

我被乘坐的簡單例子錯誤地導入,並且在其他路線中使用驗證作爲驗證。 Here(保護路徑部分)是一個易於理解的實現。