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

home2 게시판 Node.js, Express 게시판 마이페이지 질문입니다.

마이페이지 질문입니다.

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

    이한준
    참가자
    로그인은 되는데 마이페이지를 들어가려 하면 로그인이 안되어있다고 하네요
    (다시로그인 해도 안됩니다..)
    제가 어디를 잘못했는지를 못찾겠네요..
    
    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(요청, 응답){
        응답.render('login.ejs')
        
        
      });
      app.post('/login', passport.authenticate('local', {failureRedirect : '/fail'}), function(요청, 응답){
        응답.redirect('/main')
        console.log(요청.user)
      });
      app.get('/mypage', logintrue, function(요청, 응답){
        console.log(요청.user);
        응답.render('mypage.ejs', { user : 요청.user })
      });
      function logintrue(요청, 응답, next){
        if (요청.user){
          next()
        } 
        else {
          응답.render('fail.ejs')
        }
      };
      app.get('/fail', function(요청, 응답){
        응답.render('fail.ejs')
      });
    
    
      passport.use(new LocalStrategy({
        usernameField: 'id',
        passwordField: 'pw',
        session: true,
        passReqToCallback: false,
      }, function (입력한아이디, 입력한비번, done) {
        //console.log(입력한아이디, 입력한비번);
        db.collection('login').findOne({ id: 입력한아이디 }, function (에러, 결과) {
          if (에러) return done(에러)
      
          if (!결과) return done(null, false, { message: '존재하지않는 아이디입니다.' })
          if (입력한비번 == 결과.pw) {
            return done(null, 결과)
          } else {
            return done(null, false, { message: '비밀번호가 맞지않습니다.' })
          }
        })
      }));
      passport.serializeUser(function (user, done) {
        done(null, user.id)
      });
      
      passport.deserializeUser(function (아이디, done) { 
        db.collection('iogin').findOne({ id : 아이디 }, function(에러, 결과){
          done(null, 결과)
        })
      }); 
    ____________________________________________________________________________
    mypage.ejs
    
    
    <!doctype html>
    <html>
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
        <link href="/public/main.css" rel="stylesheet">
        <title>회원정보</title>
      </head>
      <body>
        
        <%- include('nav.html') %>
        <div class="container mt-4">
          <div class="card" style="width: 100%;">
            <div class="card-body">
              <h5 class="card-title text-center">회원정보</h5>
              <p class="card-text text-center">??</p>        
            </div>
            <ul class="list-group list-group-flush">
              <li class="list-group-item">아이디: <%= user.id %>
              <li class="list-group-item ">비밀번호: <%= user.pw %>
            
            <div class="card-body">
              수정하기
            </div>
          </div>
        </div>
    
    
        
       
        <!-- Optional JavaScript; choose one of the two! -->
        <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) -->
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
        <!-- Option 2: Separate Popper and Bootstrap JS -->
        <!--
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script>
        -->
      </body>
    </html>
    
    ________________________________________________________________________________________
    login.ejs
    
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
      <title>로그인</title>
    </head>
    <body>
      
      <h4 class="container mt-5">로그인</h4>
      <form class="px-4 py-3" action="/login" method="POST">
        <div class="mb-3">
          <label for="exampleDropdownFormEmail1" class="form-label">이메일</label>
          <input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="email@example.com" name="id">
        </div>
        <div class="mb-3">
          <label for="exampleDropdownFormPassword1" class="form-label">비밀번호</label>
          <input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password" name="pw">
        </div>
        <div class="mb-3">
          <div class="form-check">
            <input type="checkbox" class="form-check-input" id="dropdownCheck">
            <label class="form-check-label" for="dropdownCheck">
              기억하기
            </label>
          </div>
        </div>
        <button type="submit" class="btn btn-primary">로그인</button>
      </form>
      <div class="dropdown-divider"></div>
    
    
      <h4 class="container mt-5">회원가입
      </h4>
      <form class="px-4 py-3" action="/register" method="POST">
        <div class="mb-3">
          <label for="exampleDropdownFormEmail1" class="form-label">아이디</label>
          <input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="email@example.com" name="id">
        </div>
        <div class="mb-3">
          <label for="exampleDropdownFormPassword1" class="form-label">비밀번호</label>
          <input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password" name="pw">
        </div>
        <button type="submit" class="btn btn-primary">가입</button>
      </form>
      <div class="dropdown-divider"></div>
     
      <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
      <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
      <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    </body>
    </html>
    
    
    
    
    #41115

    codingapple
    키 마스터
      passport.deserializeUser(function (아이디, done) { 
        db.collection('iogin')
    
    iogin 오타인듯요
    #41150

    이한준
    참가자
    헉 감사합니다.. 해결됬네요..
    
    
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 호 / 개인정보관리자 : 박종흠