NodeJS Passport 사용해서 Google Login구현할때
조회수 858회
app.get('/auth/google/callback', passport.authenticate('google'));
이렇게 하면 잘 작동을 하는데요.
로그 찍어보려고 이렇게 하면 에러를 뿜어냅니다.
app.get('/auth/google/callback', (req, res) => {
console.dir( 'called' );
passport.authenticate('google')(req,res);
});
UnhandledPromiseRejectionWarning: TypeError: next is not a function
이렇게 하면, 브라우저가 계속 구글 페이지에서 빙글빙글 돌기만 합니다.
app.get('/auth/google/callback', (req, res) => {
console.dir( 'called' );
passport.authenticate('google');
});
- 어떻게 해야
passport.authenticate('google');
가 실행되기 직전에 log를 찍을 수 있을까요? - 위의 코드는 무엇이 잘못된건가요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
2번에 대해 먼저 답을 드리면... 공식 문서가 상정하는/제안하는 용법이 아니라서 그렇습니다. 일단 authenticate에 관한 Passport의 공식 문서를 보면 이런 말이 나오네요.
authenticate()
의 함수는 표준 Connect 미들웨어 형식이기 때문에, Express 웹앱에서 라우팅 미들웨어로 쓰기 편리합니다.그러면 Express의
app.get()
메소드에서 저걸 호출하는 앞뒤로 뭔가를 호출할 수 있는지 없는지를 보면 되겠죠. 이제 1번 질문에 답을 드리면, (공식 문서에 따르면) 이렇게 하시면 됩니다.app.get('/auth/google/callback', function (req, res) { console.dir('calling'); }, passport.authenticate('google'), function (req, res) { console.dir('called'); } );
댓글 입력