const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.get('/', (req, res) => {
res.cookie('username', 'yulgok');
res.send('쿠키 생성');
});
app.get('/username', (req, res) => {
const username = req.cookie.username;
if(username) {
req.send(`현재 유저: ${username}`);
} else {
res.status(404).send('No username');
}
});
cookie-parser 이라는 패키지를 설치해야 한다.(필수는 아님)
세션은 express-session 패키지를 설치해주어야 한다.
const session = require('express-session');
app.use(session({
secret: 'my secret',
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}));
- secret : 세션ID 암호화 부분이다. 실무에서는 암호화 된 값을 넣는다.
- resave : 변경이 없어도 저장할 지의 여부다. 일반적으로 false
- saveUninitialized : 세션 데이터가 없더라도 저장할 지를 묻는 것이다. 일반적으로 true
- cookie : 세션 쿠기 설정이다. secure을 설정할 경우, HTTP 프로토콜 사용할 경우만 세션 쿠키를 전송한다.
app.get('/', (req, res) => {
const isLoggedIn = req.session.isLoggedIn;
const username = req.session.username;
if(isLoggedIn) {
res.send('Good!');
} else {
res.send('please Login');
}
});
app.post('/login', (req, res) => {
const username = req.body.username;
const password = req.body.password;
const isAuthenticated = authenticateUser(username, password);
if(isAuthenticated) {
req.session.isLoggedIn = true;
req.session.username = username;
res.redirect('/');
} else {
res.send('Invaild');
}
});
app.get('/logout', (req, res) => {
req.session.destroy();
});
쿠키는 율곡이 뱃속으로 사라진걸로.....