4 글 보임 - 1 에서 4 까지 (총 4 중에서)
-
글쓴이글
-
2022년 9월 17일 09:40 #46755
이해욱참가자뭐가 문젠지 감이 안오네요
salt를 정의할수 없다는데
아이디 비밀번호가 맞으면 로그인되고
아이디는 맞고 비번이 틀리면 login 페이지로 다시 돌아가는데
아이디가 mysql 에 아예 없으면 팅겨버립니다
왜이러죠
assport.serializeUser(function(user, done){ console.log('serializeUser', user); done(null, user.username); })
passport.deserializeUser(function(id, done){ console.log('deserializeUser', id); var sql='SELECT * FROM users WHERE username=?'; conn.query(sql, [id], function(err, results){ console.log(sql,err,results); if(err){ done('There is no user.'); } else { done(null,results[0]); } }) })
passport.use(new LocalStrategy( function (username, password, done) { var uname=username; var pwd=password; var sql='SELECT * FROM users WHERE username=?'; conn.query(sql, [uname], function(err, results){ if(err){ return done('There is no user.'); } var user=results[0]; return hasher({password:pwd, salt:user.salt}, function(err, pass, salt, hash){ if(hash===user.password){ console.log('LocalStrategy', user); done(null, user); } else{ done(null,false); } }) }) } )) 로그인 post ------------------------------------------------------------------ app.post( '/auth/login', passport.authenticate( 'local', { successRedirect: '/welcome', failureRedirect: '/auth/login', failureFlash: false } ) ); 로그인 get ------------------------------------------------------------ app.get('/auth/login', function(req, res){ var output = ` <h1>Login</h1> <form action="/auth/login" method="post"> <p> <input type="text" name="username" placeholder="username"> </p> <p> <input type="password" name="password" placeholder="password"> </p> <p> <input type="submit"> </p> </form> `; res.send(output); });
에러내용 -------------------------------------------------------- TypeError: Cannot read properties of undefined (reading 'salt') at Query.<anonymous> (C:\Users\atolo\Desktop\moon\app_session.js:100:44) at Query.<anonymous> (C:\Users\atolo\Desktop\moon\node_modules\mysql\lib\Connection.js:526:10) at Query._callback (C:\Users\atolo\Desktop\moon\node_modules\mysql\lib\Connection.js:488:16) at Query.Sequence.end (C:\Users\atolo\Desktop\moon\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24) at Query._handleFinalResultPacket (C:\Users\atolo\Desktop\moon\node_modules\mysql\lib\protocol\sequences\Query.js:149:8) at Query.EofPacket (C:\Users\atolo\Desktop\moon\node_modules\mysql\lib\protocol\sequences\Query.js:133:8) at Protocol._parsePacket (C:\Users\atolo\Desktop\moon\node_modules\mysql\lib\protocol\Protocol.js:291:23) at Parser._parsePacket (C:\Users\atolo\Desktop\moon\node_modules\mysql\lib\protocol\Parser.js:433:10) at Parser.write (C:\Users\atolo\Desktop\moon\node_modules\mysql\lib\protocol\Parser.js:43:10)
-
글쓴이글
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
- 답변은 로그인 후 가능합니다.