Bepoz
파즈의 공부 일기
Bepoz
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • 공부 기록들 (85)
      • 우테코 (17)
    • Spring (85)
    • Java (43)
    • Infra (17)
    • 책 정리 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Bepoz

파즈의 공부 일기

공부 기록들

2020.02.19 백엔드 공부 (7)

2020. 2. 19. 23:33

post가 아닌 ajax 또한 passport를 통해 인증을 거칠 수가 있는데,

 

passport.use('local-login',new LocalStrategy({
  usernameField:'email',
  passwordField:'password',
  passReqToCallback : true
},function(req,email,password,done){
  console.log(1);
  var query=connection.query('select *from user where email=?',[email],function(err,rows){
    console.log('passport use local-join start');
    if(err) return done(err);
    if(rows.length){
      return done(null,{'email':email, 'id': rows[0].UID})
    }else{
      return done(null,false,{'message': 'your login info is not found.'})
    }
  })
}))

router.post('/',function(req,res,next){
  passport.authenticate('local-login',function(err,user,info){
    if(err) res.status(500).json(err);
    if(!user) {return res.status(401).json(info.message);}
    req.logIn(user,function(err){
      if(err){return next(err);}
      return res.json(user);
    });
  })(req,res,next);
})

 

에러가 발생되면 err 에 저장이 되고, 위에서 false 값이면 user에 false 가 된다. info에는 message 값이 들어가게 되는데 

 

        if(result.email) {
          sel_div.innerHTML="welcome, "+result.email+'!!';
        }else sel_div.innerHTML=result;

 

.ejs 에서 result로 뽑아냈을 시에 message를 출력할 수 있게 된다.user 를 res.json 하면   var result=JSON.parse(xhr.responseText); 이쪽으로 받아오게된다.

 

user가 false 인 경우 authenticate error 인 401 에러를 리턴. err 가 생길시에는 500 에러를 보냈다. res.status(x).json(n);

 

https://www.zerocho.com/category/NodeJS/post/57b7101ecfbef617003bf457 참고

'공부 기록들' 카테고리의 다른 글

2020.03.10 JSP (1)  (0) 2020.03.10
2020.02.25-28 백엔드 공부(8)  (0) 2020.02.28
2020.02.14 & 02.17 백엔드 공부(5),(6)  (0) 2020.02.18
2020. 02. 10 백엔드 공부(4)  (0) 2020.02.10
2020.02.04 백엔드 공부(3) (Ajax, express, body-parser, ejs)  (0) 2020.02.05
    '공부 기록들' 카테고리의 다른 글
    • 2020.03.10 JSP (1)
    • 2020.02.25-28 백엔드 공부(8)
    • 2020.02.14 & 02.17 백엔드 공부(5),(6)
    • 2020. 02. 10 백엔드 공부(4)
    Bepoz
    Bepoz
    https://github.com/Be-poz/TIL

    티스토리툴바