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

home2 게시판 Node.js, Express 게시판 비밀번호 암호화 라이브러리 설치 후 로그인 기능 에러

비밀번호 암호화 라이브러리 설치 후 로그인 기능 에러

  • 이 주제에는 2개 답변, 2명 참여가 있으며 김준기2 년 전에 전에 마지막으로 업데이트했습니다.
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #88988

    김준기
    참가자
    bcrypt 라이브러리 설치하기 전까지 로그인이 잘 되었는데
    설치 한 이후로 
    
    Failed to serialize user into session 메시지가 뜨면서 로그인이 되지 않습니다.
    console 상에서는 serializeUser 코드에 에러가 있다고 하는데, 암호화 이후에 시리얼라이즈가 달라져야 하나요?
    비밀번호 암호화해서 회원가입, db저장, db에서 꺼내서 compare 값까지 true로 받은 상태입니다.
    
    
    
    //세션만들기 (로그인 상태 유지)
    passport.serializeUser(function (user, done) {
      done(null, user.id);
    });
    //이 세션 데이터를 가진 사람을 DB에서 찾아주세요(마이페이지 접속시 발동)
    passport.deserializeUser(function (id, done) {
      //디비에서 위에 있는 user.id로 유저를 찾은 뒤에 유저 정보를 아래 중괄호에 넣음
      db.collection("members").findOne({ id: id }, function (에러, 결과) {
        done(null, 결과);
      });
    });
    //로그인 요청
    app.post(
      "/login",
      passport.authenticate("local", {
        failureRedirect: "http://localhost:3000/fail",
      }),
      function (요청, 응답) {
        응답.redirect("http://localhost:3000");
      }
    );
    passport.use(
      new LocalStrategy(
        {
          usernameField: "id", //요기는 사용자가 제출한 아이디가 어디 적혔는지
          passwordField: "pw", //요기는 사용자가 제출한 비번이 어디 적혔는지
          session: true, //요기는 세션을 만들건지
          passReqToCallback: false, //요기는 아이디/비번말고 다른 정보검사가 필요한지
        },
        function (입력한아이디, 입력한비번, done) {
          //console.log(입력한아이디, 입력한비번);
          db.collection("members").findOne(
            { id: 입력한아이디 },
            function (에러, 결과) {
              if (결과) {
                bcrypt.compare(입력한비번, 결과.pw, function(에러, 결과){
                  if (결과){
                    return done(null, 결과)
                  } else {
                    return done(null, false, {
                      message: "Password is not correct"
                    })
                  }
                })
              } else {
                return done(null, false, { message: "존재하지않는 아이디요" });
              }
            }
          );
        }
      )
    );
    #89019

    codingapple
    키 마스터
    bcrypt.compare(입력한비번, 결과.pw, function(에러, 결과2){
                  if (결과2){
    로 바꿔봅시다
    #89037

    김준기
    참가자
    감사합니다 센세
    다시보니 바보 같은 질문이었네요 ㅋㅋㅋ
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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