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

home2 게시판 Node.js, Express 게시판 로그인이 안됩니다.....

로그인이 안됩니다.....

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

    조동우
    참가자
    안녕하세요.
    회원가입은 잘 됩니다. mongodb에도 헤쉬로 잘 저장 됩니다.
    그런데 로그인 페이지에서 로그인을 하면 
    
    사이트에 연결할 수 없음
    localhost에서 연결을 거부했습니다.
    다음 방법을 시도해 보세요.
    연결 확인
    프록시 및 방화벽 확인
    ERR_CONNECTION_REFUSED
    라고 하면서 페이지가 안뜹니다.
    터미널에 있는 에러코드는 아래와 같습니다.
    
    
    
    C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\bcrypt.js:208
            error = new Error('data and hash arguments required');
                    ^
    Error: data and hash arguments required
        at Object.compare (C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\bcrypt.js:208:17)
        at C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\promises.js:29:12
        at new Promise (<anonymous>)
        at module.exports.promise (C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\promises.js:20:12)
        at Object.compare (C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\bcrypt.js:204:25)
        at Strategy._verify (C:\Users\allof\Desktop\Learn-html-css\forum\server.js:62:23)
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    
    
    
    

    <h2><span style="color: #ff0000;">passport 관련 내용은 아래와 같습니다.</span></h2>

    //회원가입 passport 시작//
    const session = require('express-session');
    const passport = require('passport');
    const LocalStrategy = require('passport-local');
    app.use(passport.initialize());
    app.use(
      session({
        secret: 'whalsdn1721',
        resave: false,
        saveUninitialized: false,
        cookie: { maxAge: 60 * 60 * 1000 },
      })
    );
    app.use(passport.session());
    passport.use(
      new LocalStrategy(async (입력한아이디, 입력한비번, cb) => {
        let result = await db
          .collection('user')
          .findOne({ username: 입력한아이디 });
        if (!result) {
          return cb(null, false, { message: '아이디 DB에 없음' });
        }
        // await bcrypt.compare(입력한비번, result.password) <- 헤쉬된 비번과 입력된 비번 비교해서 True, false 출력해줌.
        if ((await bcrypt.compare(입력한비번, result.password)) == true) {
          return cb(null, result);
        } else {
          return cb(null, false, { message: '비번불일치' });
        }
      })
    );
    passport.serializeUser((user, done) => {
      process.nextTick(() => {
        done(null, { id: user._id, username: user.username });
      });
    });
    passport.deserializeUser(async (user, done) => {
      let result = await db
        .collection('user')
        .findOne({ _id: new ObjectId(user.id) });
      delete result.password;
      process.nextTick(() => {
        return done(null, result);
      });
    });
    //회원가입 passport 끝//
    
    
    
    
    <span style="color: #ff0000;">회원관련 내용은 아래와 같습니다.</span>
    
    
    // 회원 관련 //
    //
    //
    //
    app.get('/registe', (요청, 응답) => {
      응답.render('signup.ejs');
    });
    app.post('/registe', async (요청, 응답) => {
      let passwordHash = await bcrypt.hash(요청.body.password, 10);
      await db.collection('user').insertOne({
        username: 요청.body.username,
        pasword: passwordHash,
      });
      응답.redirect('/');
    });
    app.get('/login', (요청, 응답) => {
      응답.render('login.ejs');
    });
    app.post('/login', async (요청, 응답, next) => {
      passport.authenticate('local', (error, user, info) => {
        if (error) return 응답.status(500).json(error);
        if (!user) return 응답.status(401).json(info.message);
        요청.logIn(user, (err) => {
          if (err) return next(err);
          응답.redirect('/');
        });
      })(요청, 응답, next);
    });
    //
    //
    //
    //
    //
    //
    // 회원 관련 끝
    <span style="color: #ff0000;">무엇이 문제 일까요???????</span>
    <span style="color: #ff0000;">부탁드립니다......</span>
    
    
    #103876

    codingapple
    키 마스터
    가입시킬 때 pasword: 라고 저장시키는건 오타인듯요
    #103880

    조동우
    참가자
    와~~~~~~~~~~~
    정말 바보같은 짓을 했내요..........
    
    너무너무 감사합니다.
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 호 / 개인정보관리자 : 박종흠