• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 로그인 기능 질문드립니다..!

로그인 기능 질문드립니다..!

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #11684

    진민
    참가자

    로그인 기능을 통해서 게시물 삭제를 진행하려고 하는데 kim, 1234이렇게 데이터베이스에 등록이 되어있어서 로그인 하려고 했는데 이상하게 로그인이 되지 않고 401에러가 뜹니다.  id : kim, pw : 1234로 되어있는데 해당 로그인칸에는 뜨질 않더라구요...그래서 kim, kim 이렇게 했는데 로그인은 가능하더라구요 그리고 혹시 몰라서 숫자를 password에 숫자를 섞어서 jm1123이런식으로 저장하고 로그인 했는데 로그인이 되질 않는거봐서는 숫자에 문제가 있는거 같은데 어떤 부분이 문제인지 알수있을까요?

    app.use(session({secret : 'secretcode', resave: true, saveUninitialized :false}));
    app.use(passport.initialize());
    app.use(passport.session());
    //app.use(미들웨어) : 요청 - 응답 중간에 뭔가 실행되는 코드

    app.get('/login',function(req, res){
      res.render('login.ejs');
    });
    app.post('/login',passport.authenticate('local',{failureRediract : '/fail'}), function(req, res){
      res.redirect('/');//이러한 경로로 보내주세요~(성공시)
    });
    // passport 의 문법을 이용하면 로그인폼을 쉽게 구현 가능

    passport.use(new LocalStrategy({
    usernameField : 'id',
    passwordField : 'pw', //유저가 입력한 name속성을 말함
    session : true, //로그인 후에 세션을 저장할건지에 대한
       passReqToCallback : false,//아이디 외에 다른 부분도 인증하기 위해선 true로 변경하면 됨
     },function(inputid, inputpw, done){
       console.log(inputid, inputpw); 
       db.collection('login').findOne({id : inputid}, function(err, resu){
         if(err) return done(err);

         if(!resu) return done(null, false, {message : '존재하지 않는 아이디요'});
         if(inputid == resu.pw){
            return done(null, resu);//여기 있는 결과 값이 **
         }else{
            return done(null, false, {message : '비번틀렸어요'});
         }//done(서버에러, 성공시 사용자의 DB데이터, 에러메세지)
    })
    }));//로그인 완료 -> 세션 정보를 만듦-> 마이페이지 방문시 세션 검사
    <p style="text-align: left;">
    passport.serializeUser(function(user, done){//user로 보내진다.**
       done(null, user.id)
    });//id를 이용해서 세션을 저장시키는 코드
        passport.deserializeUser(function(identi, done){
            db.collection('login').findOne({id : identi}, function(err, resu){
            done(null, resu);//로그인한 유저의 개인정보를 DB에서 찾는 역할
        })
    })</p>

    #11688

    codingapple
    키 마스터

     if(inputid == resu.pw

    이 코드에서 사용자가 인풋에 입력한 아이디가 DB에 저장된 pw와 같은지 비교하고 있어서 그런듯요

    사용자가 입력한 비번과 DB에 저장된 pw를 비교하도록 합시다 

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠