home › ๊ฒŒ์‹œํŒ › Node.js, Express ๊ฒŒ์‹œํŒ › crbug/1173575, non-JS module files deprecated ์—๋Ÿฌ

crbug/1173575, non-JS module files deprecated ์—๋Ÿฌ

  • ์ด ์ฃผ์ œ์—๋Š” 7๊ฐœ ๋‹ต๋ณ€, 2๋ช… ์ฐธ์—ฌ๊ฐ€ ์žˆ์œผ๋ฉฐ codingapple๊ฐ€ 3 ๋…„, 11 ์›” ์ „์— ์ „์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
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 ํ˜ธ / ๊ฐœ์ธ์ •๋ณด๊ด€๋ฆฌ์ž: ๋ฐ•์ข…ํ  / ๋Œ€ํ‘œ์ž๋ช…: ๋ฐ•ํ•ด์œค