2013-03-15 3 views
2

NodeJS, Express 및 PassportJS를 사용하여 웹 응용 프로그램을 구축하고 있습니다. 나는 내 노선 중 하나에 문제가있어 나는 어떤 감각을 밖으로 만들 수 없습니다. 내가 가지고있을 때 :Passport에서 파일 경로를 라우팅합니다.

... 
app.get('/auth/facebook', passport.authenticate('facebook')); 
... 

모든 것이 잘 작동하는 것 같습니다. 그러나 내가 그것을 바꿀 때 :

... 
app.get('/auth/facebook', 
    function(req, res) { 
    passport.authenticate('facebook'); 
    }); 
... 

그것은 걸린다? app.get 함수에서 뭔가 빠졌습니까? 패스를 인증 할 때 패스를 좀 더 동적으로 만들고 싶기 때문에이 작업을 수행 할 수 있기를 원합니다. 예를 들어 :

... 
app.get('/auth/:provider', 
    function(req, res) { 
    passport.authenticate(req.params.provider); 
    }); 
... 

공급자가 facebook, twitter, 또는 google 수 ...

답변

7

passport.authenticate는 미들웨어, 소스에서 거위의 수컷을 : https://github.com/jaredhanson/passport/blob/master/lib/passport/middleware/authenticate.js

passport.authenticate를 (' facebook ')은 표현식에서 req, res, next 매개 변수를 취하여 처리하는 함수를 반환합니다.

그렇게 :

app.get('/auth/:provider', 
    function(req, res, next) { 
    passport.authenticate(req.params.provider)(req, res, next); 
    }); 

당신이 필요합니다.

+1

실무 위대한! 감사! – kentcdodds

+0

굉장한 남자! 도와 주셔서 감사합니다! – KyleFarris

관련 문제