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

home2 게시판 Node.js, Express 게시판 로그인 함수가 듣지 않습니다

로그인 함수가 듣지 않습니다

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

    김민주
    참가자
    router.use(session({
      secret: 'process.env.DB_SECRET',
      resave : false,    
      saveUninitialized : false 
    })) 
    router.use(passport.session())
    router.use(passport.initialize())
    passport.use(
      new LocalStrategy(
        {
          usernameField: "id",
          passwordField: "pw",
          session: true,
          passReqToCallback: false,
        },
        function (입력한아이디, 입력한비번, done) {
          console.log("입력한 아이디 :" + 입력한아이디 + '\n'+"입력한 비번 :" + 입력한비번);
         database.loginfindOne({id:입력한아이디}).then((result)=>{
          if (!result)
            return done(null, false, { message: "존재하지않는 아이디입니다." });
          if (입력한비번 == result.pw) {
            return done(null, result);
          } else {
            return done(null, false, { message: "다시 입력바랍니다." });
          }      
         }).catch((error)=>{
          return done(error);
         })
        }
      )
    );
    passport.serializeUser(function (user, done) {
      done(null, user.id);
    });
    passport.deserializeUser(function (아이디, done) {
      database.loginfindOne({id:아이디}).then((result)=>{
        done(null,{});
      });
      
    });
    
    
    
    
    function 로그인했니(req, res, next) {
      console.log(req.body.id + "req.body");
      console.log(req.user + " 로그인했니 req.user");
      
      if (req.user) {   // 브라우저에 세션이 있으면 넘어가
        next();
      } else {
        console.log("실패!");
        res.send('<script>alert("로그인을 해주세요."); window.location.replace("/login");</script>');
      }
    }
    
    
    
    
    router.post(
      "/login",
      passport.authenticate("local", {
        failureRedirect: "/login" }),(req,res)=>{
          res.redirect('/');
        });
    
    
    오류 메시지 
    undefined 로그인했니 req.user
    TypeError: Cannot read properties of undefined (reading 'id')
        at C:\Users\com_01\Desktop\butterfly\poca\routes\loginRoute.js:98:45
        at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5)
        at next (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:144:13)
        at 로그인했니 (C:\Users\com_01\Desktop\butterfly\poca\routes\loginRoute.js:73:5)
        at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5)
        at next (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:144:13)
        at Route.dispatch (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:114:3)
        at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5)
        at C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\index.js:284:15
        at Function.process_params (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\index.js:346:12)
    
    왜 로그인 할 때 req.user가 없다고 나올까요?
    
    
    #101584

    codingapple
    키 마스터
    req.body.id 에서 req.body에 id가 없다는소리같군요
    #101762

    김민주
    참가자
    로그인을 하면 서버 브라우저에 세션이 있어야하는데 세션이 없는 상태라고 계속 로그인 하라고 뜹니다.
    그래서   
    if (req.user || req.body) {   // req.user 또는 req.body로 바꿈
        next();
      } else {
        console.log("실패!");
        res.send('<script>alert("로그인을 해주세요."); window.location.replace("/login");</script>');
      }
    }
    로 하면 else로 가지 않고 오류가 뜹니다 이 이유가 무엇일까요? 
    TypeError: Cannot read properties of undefined (reading 'id')
        at C:\Users\com_01\Desktop\butterfly\poca\routes\loginRoute.js:98:45
        at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5)
        at next (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:144:13)
        at 로그인했니 (C:\Users\com_01\Desktop\butterfly\poca\routes\loginRoute.js:73:5)
        at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5)
        at next (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:144:13)
        at Route.dispatch (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:114:3)
        at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5)
        at C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\index.js:284:15
        at Function.process_params (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\index.js:346:12)
    #101763

    김민주
    참가자
    해결했습니다!
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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