728x90
반응형
저번에 로그인 기능을 만들었던 것에 이어 마이페이지를 만들어보자.
처음 로그인할 때는 passport.serializeUser()함수를 이용하여 세션을 생성해주었는데,
이번에는 세션정보로 DB에서 유저정보를 찾는 passport.desrializeUser()함수를 이용해야 한다.
//이 세션데이터를 가진 사람을 DB에서 찾음
passport.deserializeUser(function(아이디,done){
db.collection('login').findOne({id:아이디},function(에러,결과){
done(null,결과)
})
});
db의 findOne함수로 간단하게 작성할 수 있다.
미리 만들어둔 mypage.ejs를 get요청시 렌더해주여야하는데,
렌더하기전에 유저가 로그인했는지 판별할 필요가 있다.
그래서, get함수의 두번째 인자로 미들웨어를 하나 추가해야하는데
그 미들웨어는 '로그인했니'라는 이름으로 만들었다.
app.get('/mypage',로그인했니,function(req,res){
//console.log(req.user)
res.render('mypage.ejs',{사용자:req.user})
})
function 로그인했니(요청,응답,next){
if(요청.user){//로그인 후 세션이 있으면 요청.user가 존재함
next()
}else{
응답.send('로그인 후 이용해 주세요.')
}
}
'로그인했니'라는 함수는
요청.user가 존재하면 ==> next() 로 통과
없으면 ==> 로그인을 안 한 상태라고 응답
위 기능을 한다.
*(요청.user는 로그인한 유저의 정보가 담겨있는데, passport.desrializeUser()함수를 통해 db에서 로그인한 유저의 정보를 가져온 것임)
728x90
반응형
'웹개발 > Node.js' 카테고리의 다른 글
[Node.js] 회원가입, 회원기능 만들기 (0) | 2023.02.25 |
---|---|
[Node.js] 검색기능 만들기(query string) (0) | 2023.02.24 |
[Node.js] 로그인 기능 추가하기(Session 방식) (0) | 2023.02.22 |
[Node.js] 글 수정 기능 추가하기 (0) | 2023.02.22 |
[Node.js] CSS파일 이용하는 법 (0) | 2023.02.19 |
댓글