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

home2 게시판 Node.js, Express 게시판 로그인 성공시 로딩중 상태 입니다.

로그인 성공시 로딩중 상태 입니다.

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

    양재영
    참가자
    node.js 로그인 기능 구현하고 
    로그인 성공 후 리다이렉트로 홈으로 돌아가는 과정에서
    넘어가지 않아요.
    
    
    세션 저장된 것 확인 하였는데
    홈 화면을 보여주지 않아요.
    
    
    
    
    
    // 로그인 관련 코드 (복붙)
    const passport = require('passport');
    const LocalStrategy = require('passport-local').Strategy;
    const session = require('express-session');
    app.use(session({secret : '비밀코드', resave : true, saveUninitialized: false})); // 비밀코드 : 세션을 만들때 사용되는 비밀번호 (아무거나 작성)
    app.use(passport.initialize());
    app.use(passport.session());
    app.get('/login',function(req,res){
        res.render('login.ejs')
    })
    app.post('/login',passport.authenticate('local',{ // local 방식으로 인증 해줌
        failureRedirect : '/fail' // 회원인증 실패하면 fail로 이동
    }),function(req,res){
        res.redirect('/') // 회원인증 성공시 리다이렉트
    })
    // LocalStrategy 인증방법
    passport.use(new LocalStrategy({
      usernameField: 'id', // 폼으로 부터 입력 받은 아이디, 비밀번호 (인풋 네임 id, pw)
      passwordField: 'pw',
      session: true, // 로그인후 세션을 저장할 것인지 true
      passReqToCallback: false, //
    }, function (입력한아이디, 입력한비번, done) { // 아이디 비번 말고도 다른 정보 검증시, 위의 false를 true로 변경
      console.log(입력한아이디, 입력한비번);
      db.collection('login').findOne({ id: 입력한아이디 }, function (에러, 결과) {
        if (에러) return done(에러)
        if (!결과) return done(null, false, { message: '존재하지않는 아이디요' }) // 아이디 비번 불일치시 done 2번째 파라미터 false
        if (입력한비번 == 결과.pw) {
          return done(null, 결과) // done : 라이브러리 문법임. 3개의 파라미터를 가질수 있음 
                                 //done(1.서버에러, 2.성공시 사용자 DB데이터,)
        } else {
          return done(null, false, { message: '비번틀렸어요' })
        }
      })
    }));
    // 세션 만들기 (라이브러리 이해 x) 로그인 성공시 발동
    passport.serializeUser(function(user,done){ // user에는 검증에서 비밀번호까지 일치했을때 DB의 결과가 들어감.
      done(null, user.id)
    });
    // 마이페이지 접속시 발동
    passport.deserializeUser(function(아이디,done){
      db.collection('login').findOne(({id : 아이디}),{function(err,result){
          done(null,{result})
      }}) 
    });
    #61943

    codingapple
    키 마스터
    app.post('/login' 부분 끝나는 괄호같은게 없어보입니다
    #61950

    양재영
    참가자
    먼저 답변해주셔서 감사합니다.
    괄호는 확인해봤는데 이상이 없었어요ㅠ
    
    
    #61976

    양재영
    참가자
    해결 됐습니다. 감사합니다.!
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 호 / 개인정보관리자 : 박종흠