로그인 기능을 통해서 게시물 삭제를 진행하려고 하는데 kim, 1234이렇게 데이터베이스에 등록이 되어있어서 로그인 하려고 했는데 이상하게 로그인이 되지 않고 401에러가 뜹니다. id : kim, pw : 1234로 되어있는데 해당 로그인칸에는 뜨질 않더라구요...그래서 kim, kim 이렇게 했는데 로그인은 가능하더라구요 그리고 혹시 몰라서 숫자를 password에 숫자를 섞어서 jm1123이런식으로 저장하고 로그인 했는데 로그인이 되질 않는거봐서는 숫자에 문제가 있는거 같은데 어떤 부분이 문제인지 알수있을까요?
app.use(session({secret : 'secretcode', resave: true, saveUninitialized :false}));
app.use(passport.initialize());
app.use(passport.session());
//app.use(미들웨어) : 요청 - 응답 중간에 뭔가 실행되는 코드
app.get('/login',function(req, res){
res.render('login.ejs');
});
app.post('/login',passport.authenticate('local',{failureRediract : '/fail'}), function(req, res){
res.redirect('/');//이러한 경로로 보내주세요~(성공시)
});
// passport 의 문법을 이용하면 로그인폼을 쉽게 구현 가능
passport.use(new LocalStrategy({
usernameField : 'id',
passwordField : 'pw', //유저가 입력한 name속성을 말함
session : true, //로그인 후에 세션을 저장할건지에 대한
passReqToCallback : false,//아이디 외에 다른 부분도 인증하기 위해선 true로 변경하면 됨
},function(inputid, inputpw, done){
console.log(inputid, inputpw);
db.collection('login').findOne({id : inputid}, function(err, resu){
if(err) return done(err);
if(!resu) return done(null, false, {message : '존재하지 않는 아이디요'});
if(inputid == resu.pw){
return done(null, resu);//여기 있는 결과 값이 **
}else{
return done(null, false, {message : '비번틀렸어요'});
}//done(서버에러, 성공시 사용자의 DB데이터, 에러메세지)
})
}));//로그인 완료 -> 세션 정보를 만듦-> 마이페이지 방문시 세션 검사
<p style="text-align: left;">
passport.serializeUser(function(user, done){//user로 보내진다.**
done(null, user.id)
});//id를 이용해서 세션을 저장시키는 코드
passport.deserializeUser(function(identi, done){
db.collection('login').findOne({id : identi}, function(err, resu){
done(null, resu);//로그인한 유저의 개인정보를 DB에서 찾는 역할
})
})</p>