로그인 했을때만 글쓰기 기능 만들기-2
지난번 server.js 에 내용 추가됨
복잡하니 나중에 이대로 복붙하여 사용하면 될듯
//server.js
app.get('/login', function(request, response){
response.render('login.ejs');
});
app.post('/login', passport.authenticate('local', {
failureRedirect : '/fail'
}), function(request, response){
response.redirect('/');
});
//로그인 정보 검증
passport.use(new LocalStrategy({
usernameField: 'id',
passwordField: 'pw',
session: true,
passReqToCallback: false,
}, function (입력한아이디, 입력한비번, done) {
//console.log(입력한아이디, 입력한비번);
db.collection('login').findOne({ id: 입력한아이디 }, function (에러, 결과) {
if (에러) return done(에러)
if (!결과) return done(null, false, { message: '존재하지않는 아이디요' })
if (입력한비번 == 결과.pw) {
return done(null, 결과)
} else {
return done(null, false, { message: '비번틀렸어요' })
}
})
}));
//로그인 성공시 세션데이터 만드는 법
passport.serializeUser(function(user, done){
done(null, user.id)
});
//마이페이지 등 접속시 이 세션 데이터를 가진 사람을 DB에서 찾아주세요
passport.deserializeUser(function(id, done){
done(null, {})
});
사전에 몽고디비에 테스트용으로 만들어둔 아이디와 패스워드를 가지고 테스트를 해본다.
아이디와 패스워드 입력하면
app.post('/login', passport.authenticate('local', {
failureRedirect : '/fail'
}), function(request, response){
response.redirect('/');
});
여기에 작성된것 처럼
실패시 /fail
성공시 / 로 리다이렉트된다
그리고
세션데이터를 만들게 됨
그렇다고 한다.
'WEB' 카테고리의 다른 글
Node.js로 웹서비스 만들기 21일차 (0) | 2023.03.17 |
---|---|
Node.js로 웹서비스 만들기 20일차 (0) | 2023.03.15 |
Node.js로 웹서비스 만들기 18일차 (0) | 2023.03.03 |
Node.js로 웹서비스 만들기 17일차 (0) | 2023.02.22 |
Node.js로 웹서비스 만들기 16일차 (0) | 2023.02.22 |