본문 바로가기
개발

[NodeJS] Passport 기반 router 설정

by 마스터누누 2017. 4. 18.
728x90
반응형

passport 기반 router 설정

 



1
2
3
4
5
6
7
router.post('/', passport.authenticate('local-join'){                                                         
  { successRedirect: '/main',
    failureRedirect: '/join',
    failureFlash: true 
  }
})
 
cs


위의 소스를 passport 소스가 구현된 js파일에 넣어준다.

'/' 루트로 post 요청을 보내게 되면

authenticate라는 메소드를 이용하여 인증을 하게 된다.

이때 인증에 성공하면 successRedirect의 루트로 이동하고

실패하면 failureRedirect의 루트로 이동하게된다.




1
2
3
4
5
6
7
8
9
passport.use('local-join'new LocalStrategy({
    usernameField : 'email',
    passwordField : 'password',
    passReqToCallback : true
  }, function(req, email, password, done){
    console.log('local-join callback called');                                                        
  }
));
 
cs


해당 경로로 접근하게되면

먼저 생성해 두었던 passport가 실행되며, 콜백함수가 동작한다.

콜백함수의 동작을 확인하기 위해 임의의 문장을 넣어보았다.





 


local:3000/에 접근해서 아무값이나 넣었더니 브라우저는 무한대기상태에 걸렸다

그리고, console 창에 미리 입력해둔 문장이 출력되었다.


callback 함수내에서 success인지 failure인지 판별하여 리다이렉팅을 해줘야하는데

현재는 console.log 밖에 없으므로 대기 상태에 걸리게된다.




조심!



공식 홈페이지에도 나와있듯이 passport의 configure중 body-parser가 포함되어있다

아마도 post로 들어온 요청을 분석하기 위해서 사용하는듯하다

app.js에 body-parser를 포함하지 않으면 username, password값이 null이 되고 

콜백함수가 동작하지 않으니 꼭 포함 시켜줘야한다.




예제코드

반응형

'개발' 카테고리의 다른 글

[NodeJS] Passport 기반 세션처리  (0) 2017.04.18
[NodeJS] Passport - local/strategy 콜백완성  (0) 2017.04.18
[NodeJS] Passport - middleware/strategy 설정  (0) 2017.04.18
[NodeJS] Passport 환경 구축  (0) 2017.04.18
[NodeJS] MySQL 연동  (0) 2017.04.18

댓글