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

home2 게시판 Node.js, Express 게시판 nodejs 로그인 페이지 및 회원 가입 페이지 관련 질문입니다

nodejs 로그인 페이지 및 회원 가입 페이지 관련 질문입니다

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

    김도균
    참가자
    안녕하세요 다름이 아니고 제가
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Login</title>
        <link href="/bar.css" rel="stylesheet">
        <link rel="stylesheet"
              href="./fontawesome/css/all.min.css"
              integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA=="
              crossorigin="anonymous"
              referrerpolicy="no-referrer"/>
    </head>
    <body>
    <div>
        <ul class="top-bar">
            <li class="top-bar-square" onclick="location.href='/'">
                <H1>NJ2</H1>

    <div class="login">

            <form action="/login" method="post" name="login">
                <div class="login-box">
                    <p>ID : </p>
                    <input type="text" placeholder="아이디를 입력해주세요" name="username" value="yrjo">
                </div>
                <div class="login-box">
                    <p>PW : </p>
                    <input type="password" placeholder="비밀 번호를 입력해주세요" style="margin-left: 9px" name="password" value="011022">
                </div>
                <div class="login-box login-box-button">
                    <button form="login">로그인</button>
                </div>
            </form>
            <form action="/membership" method="get" name="membershipForm">
                <div class="login-box login-box-button">
                    <button onclick="location.href='/membership'" form="membershipForm">회원 가입</button>
                </div>
            </form>
     
     
        </div>
    </div>
    </body>
    </html>
    으로 /login으로 post요청을 했고
    app.post('/login', (req, res, next) => {
        debug('Debug message here');
        console.log('test')
        passport.authenticate('local', { failWithError: true }, async (err, user, info) => {
            console.log('test authenticate');
            if (err) {
                return res.status(500).json(err);
            }
            if (!user) {
                return res.status(401).send('Unauthorized');
            }
    req.login(user, (err) => {
                if (err) {
                    return res.status(500).json(err);
                }
                setTimeout(() => {
                    console.log('login Successful')
                   res.redirect('/')
                }, 0);
            });
        })(req, res, next);
    }); 이런 식으로 post요청을 처리하도록 작성을 했습니다 그런데 접속을 해보니까 아예 안되더라구여 그래서 위와 같이 console.log를 활용하여 어디가 안되는지
    찾아봤는데 로그 자체가 찍히지를 않습니다 일단 저는 처음에는 비동기화 (process.nextTick)쪽에서 문제가 있겠거니 하고 해당 부분을 주석처리 하고 이후에
    passport.use(new LocalStrategy({
        usernameField: 'username',
        passwordField: 'password'
    },async (typingId, typingPw, cb) => {
    let result = await db.collection('member').findOne({ username : typingId})
        if (!result) {
            return cb(null, false, { message: '아이디 DB에 없음' })
        }
        if (await bcrypt.compare(typingPw, result.password)) {
            return cb(null, result)
        } else {
            return cb(null, false, { message: '비번불일치' });
        }
    }))
    
    이쪽 코드도 좀 손 보면서 제 선에서 찾을 수 있는 선에서 다 해봤는데 이게 로그가 안찍히다 보니까 원인을 잘 모르겠더라구요 그래서 질문차 문의드립니다
    
    감사합니다
    
    
    login.ejs
    
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Login</title>
        <link href="/bar.css" rel="stylesheet">
        <link rel="stylesheet"
              href="./fontawesome/css/all.min.css"
              integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA=="
              crossorigin="anonymous"
              referrerpolicy="no-referrer"/>
    </head>
    <body>
    <div>
        <ul class="top-bar">
            <li class="top-bar-square" onclick="location.href='/'">
                <H1>NJ2</H1>

    <div class="login">

            <form action="/login" method="post" name="login">
                <div class="login-box">
                    <p>ID : </p>
                    <input type="text" placeholder="아이디를 입력해주세요" name="username" value="yrjo">
                </div>
                <div class="login-box">
                    <p>PW : </p>
                    <input type="password" placeholder="비밀 번호를 입력해주세요" style="margin-left: 9px" name="password" value="011022">
                </div>
                <div class="login-box login-box-button">
                    <button form="login">로그인</button>
                </div>
            </form>
            <form action="/membership" method="get" name="membershipForm">
                <div class="login-box login-box-button">
                    <button onclick="location.href='/membership'" form="membershipForm">회원 가입</button>
                </div>
            </form>
     
     
        </div>
    </div>
    </body>
    </html>
     
    #109491

    codingapple
    키 마스터
    전송버튼에 type="submit" 추가해봅시다
    #109624

    김도균
    참가자
    선생님 바쁘신 와중에도 귀중한 답변 감사합니다
    
    우선 <button type="submit" form="login">로그인</button>을 추가하여 실행을 하였지만 
    
    여전히 아무것도 나오지 않는 상태 확인했습니다 
    
    혹시 이게 server.js 문제일지 확인 차 재문의드립니다
    #109650

    codingapple
    키 마스터
    form="login"은 지워봅시다
    #109866

    김도균
    참가자
    넵 감사합니다 정상적으로 해결이 된 것 같습니다 여담으로 궁금한게 있는데 혹시 선생님께서는 기능이 정상적으로 작동하지 않는데 로그나 
    콘솔에서 아무것도 안뜨면 어떤식으로 조치하시고 찾아 보시는지 궁금합니다 이번 에러도 여러 군대에서 찾아봤는데 로그도 안뜨고 답답 했어서요 
    그런 검색 노하우 스킬이 궁금합니다 감사합니다
    #109870

    codingapple
    키 마스터
    서버에 아무것도 안뜨면 post 요청이 안가는거라 post요청하는 코드 확인해보면 됩니다
    #110001

    김도균
    참가자
    넵 감사합니다 좋은 하루되세요!!
    
7 글 보임 - 1 에서 7 까지 (총 7 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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