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

home2 게시판 Node.js, Express 게시판 crbug/1173575, non-JS module files deprecated 에러

crbug/1173575, non-JS module files deprecated 에러

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

    themapa
    참가자
    로그인에 실패했을 경우 알람을 띄우는 기능을 만들려고 
    $('.btn').click(function(){
          $.ajax({
            method : 'POST',
            url : '/',
            data : {id : String($('.id').val()), pw : String($('.pw').val())},
          }).done((결과) => {
            window.location.replace('/login_success')
          }).fail((xhr,code,err) => {
            window.location.replace('/')
          })
        })
    
    passport.authenticate('local')에
    passport.authenticate('local', (err, user, info) => {
    console.log(info.message)
    ...
    })
    로 변경해서 message를 가져오는 지 확인하고 로그인 시도를 하니
    잘 되던 로그인이 안되고 crbug/1173575, non-JS module files deprecated 발생합니다.
    
    passport.authenticate에 인자를 추가할 때 따로 설정해야하는 것이 있는건가요??
    유튜브로 음악들으면서 코딩해서 인터넷 문제는 아닌데 passport를 수정해야하나요??
    #53969

    codingapple
    키 마스터
    console.log(info.message) 넣을 때만 이상해지는거면 info에 .message가 없거나 그런경우같고
    아니면 컴퓨터 껐다켭시다
    #54156

    themapa
    참가자
    중간에 message를 안보낸 게 있어서 message다 보내게하니 계속 로딩중으로 다음 페이지로 넘어가지 않습니다.
    console.log(info.message)하니 터미널창에 잘 나오는 걸 확인했습니다.
    선생님 message를 넘기려면 응답.status(400).send({message : '이미 사용중인 아이디입니다.'}) 이런씩으로 코드를 짜야할 거 같은데
    (err, user, info) => {
    console.log(info.message)
    이거 안쓰고 message를 가져오는 방법이 있나요???
    
    #54179

    codingapple
    키 마스터
    console.log(info.message) 밑에 응답.send 어쩌구도 같이쓰면 될듯요
    #54329

    themapa
    참가자
    app.post('/', passport.authenticate('local', {failureRedirect : '/', successRedirect: '/login_success', failureMessage: true}), 
    function(요청, 응답){
      응답.status(200).send({message : "로그인했습니다."})
    })
    선생님 위의 코드로 저가 라우팅을 하고 있습니다. 로그인이 실패할 경우에는 function쪽이 작동이 안하는 걸로 알고 있습니다.
    응답.send를 사용하려면 function 뒤에 작성해야하는데 어떻게해야할 지 모르겠습니다.
    
    다른 방법이 없나 찾아보다가 connect-flash쓰면 된다고 하길레 이것도 보니깐 응답.send를 해야하는 거더라구요ㅠㅠ
    #54414

    codingapple
    키 마스터
    ajax로 보내는거면 미들웨어로 쓰지말고 
    
    app.post('/login', function (요청, 응답) {
      passport.authenticate('local', {}, function(error, user, msg){ 
          if (!user) {
            응답.send('fail')
          } else {
            요청.login(user, function(err){
              if(err){ return next(err); }
              응답.send('success')
            });
          }
      })(요청, 응답);
    });
    
    이런거 씁시다
    #55438

    themapa
    참가자
    선생님 올려주신 코드를 수정해서 기능을 구현했습니다.
    요청.login <- 얘는 어떻게 작동하는 함수인가요??
    비밀번호가 틀렸을 경우 유저의 id를 이용해서 5번 이상 틀릴시 아이디를 접속을 막을려고 하고 있습니다.
    그래서 passport에서 비밀번호가 틀렸을 경우 false 반환하는 걸 결과로 바꿨더니 로그인이 안되네요ㅠㅠ
    
    
    app.post('/', function (요청, 응답) {
      passport.authenticate('local', {}, function(error, user, msg){
          if (user !== "로그인성공했어요") {
            if(msg.message === "비번틀렸어요"){
              console.log(msg)
            }
            응답.status(400).send({message : msg})
          } else {
            요청.login(user, function(err){
              if(err){
                응답.status(400).send({message : msg})
                return next(err) 
              }
              응답.status(200).send({name : user})
            });
          }
      })(요청, 응답);
    });
    passport.use(new LocalStrategy({
      usernameField: 'id',
      passwordField: 'pw',
      session: true,
      passReqToCallback: false,
    }, function (입력한아이디, 입력한비번, done) {
      db.collection('user').findOne({ id: 입력한아이디 }, function (에러, 결과) {
        // 에러확인
        if (에러) return done(에러, {message: '에러가 있습니다.'})
        // 아이디 확인
        if (!결과) return done(null, false, { message: '존재하지않는 아이디입니다' })
        // 비밀번호 확인
        // 암호복구
        let userPW = 결과.pw
        let bytes = CryptoJS.AES.decrypt(userPW, secretKey)
        let decrypted = JSON.parse(bytes.toString(CryptoJS.enc.Utf8))
        console.log('암호복구 : ' + decrypted)
        if (입력한비번 == decrypted) {
          return done(null, 결과, {message : "로그인성공했어요"})
        } else {
          return done(null, 결과, { message: '비번틀렸어요' })
        }
      })
    }));
    #55470

    codingapple
    키 마스터
    사용법은 아마 공식문서에 나와있습니다 로그인시켜주는 함수입니다 
    done 함수에 false는 건드리지 맙시다
8 글 보임 - 1 에서 8 까지 (총 8 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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