2015-10-20 59 views
1

這是我第一次實現身份驗證。我在一些meanjs範例項目過這個傳來:Passport身份驗證的唯一模式

app.get('/auth/facebook', function(req, res, next) { 
     passport.authenticate('facebook', { 
     scope: ['email'] 
     })(req, res, next); 
    }); 

我的困惑的主要來源是(REQ,水庫,下一個)調用 - 我還沒有看到過這樣的。那裏究竟發生了什麼?

回答

2

1.函數app.get需要兩個輸入:一個路徑和一個回調函數。
2.回調函數有三個輸入:req,res,next。
3.回調函數,在其內部調用一個函數發生器(passport.authenticate),它返回一個函數。
4.此函數發生器或函數工廠本身需要兩個輸入:'臉譜'和具有範圍屬性的對象。
5.最後,從驗證返回的函數本身使用原始req,res和下一個參數調用。