본문 바로가기

Nodejs

[NODEJS 입문]10. 세션을 이용한 로그인 정보 기억하기 & Logout 처리하기

반응형

세션을 이용하여 로그인 정보를 저장하자.

 

https://www.npmjs.com/package/express-session 이동 

 

1. express-session 설치

npm install --save express-session

 

2. 프로젝트에 모듈연결

var session = require('express-session');

 

3. app.use session으로 사용 설정

app.use(session({
secret :'asdjha!@#@#$dd',
resave:false,
saveUninitialized:true
}))

 

!! 3군데를 고쳐야 함.

 

1. welcome 페이지 넘길때, session 값 넘겨주기

2. login시, session에 값 넣기

3. register 등록시, session에 값 넣기

 

 

4-1. welcome pug 호출시, session 값 넘기기

router.get('/user/welcome',(req,res)=>{
console.log('displayname ',req.session.displayname)
res.render(path.join('.','user','welcome')
,{dispname : req.session.displayname}); //<-이부분 추가
})

 

4-2. login시, session 값 넣기

router.route('/user/login')
...
 
if(user){
console.log(user,user.displayname);
req.session.displayname=user.displayname;
return req.session.save(()=>{
res.redirect('/user/welcome');
})
}

 

4-3. register 할 때 session값 넣기 [이 사이트는 등록시, 최초 로그인 시키기 위해 이렇게 함.]

 

req.session.displayname=temp.displayname;
return req.session.save(()=>{
return res.redirect('/user/welcome');
})
 

 

4-4. req.session.save() 세션등록 후 진행할 액션

* 비동기적으로 실행 하기 때문에 동기 실행을 위해 필요한 코드.

req.session.save(()=>{})

 

4-5. welcome.pug

#{dispname} 하여 로그인 사용자 정보 표시

h1 WELCOME! #{dispname}
-if(dispname){
div
a(href='/user/logout') Logout
-}else{
div
a(href='/user/login') Login
div
a(href='/user/register') Register
-}
 

 

 

5. Logout 처리

로그아웃시, session delete 시킴!

router.route('/user/logout')
.get((req,res)=>{
delete req.session.displayname;
return req.session.save(()=>{
return res.redirect('/user/welcome');
})
})

 

 

반응형