세션에 대해서 다루기 위해서, session 과 관련된, express-session 을 require 해주고, session 을 use 해서 준비되어있는 상태에서 시작한다.
// require 준비
var session = require('express-session');
// session use
app.use(session({
secret: '312321sadashkjdahd1321',
resave: false,
saveUninitialized: true
}));
user
객체로, displayName
을 추가한다.
(username
은, 로그인할 때 사용하는 것이고, displayName
는, 로그인했을 때, user의 이름으로 보여준다.)
var user = {
username:'Juni_K',
password:'111',
displayName:'JHK'
};
로그인에 성공했다면(if
구문에 대해서 true
라면), session
의displayName
에 user
객체의 displayName
을 정의한다.
if(uname == user.username && pwd == user.password){
//session 의 displayName 으로, user 객체의 displayName 으로 정의한다.
req.session.displayName = user.displayName;
res.redirect('/welcome');
}else{
res.send('Who are you? <a href="/auth/login">login</a>');
}
그렇다면, 이제 로그인에 성공했을 때, 이동하는 /welcome
의 라우터를 작성한다.
('/welcome
')
app.get('/welcome',function(req,res){
if(req.sesssion.displayName){
// req.session.displayName 이 있다면(로그인 성공),
res.send(`
<h1>Hello, ${req.session.displayName}</h1>
<a href="/auth/logout">logout</a>
`);
// req.session.displayName 이 없다면(로그인 실패),
}else{
res.send(`
<h1>Welcome</h1>
<a href="/auth/login">Login</a>
`);
}
});