cookie-parser는 Node.js의 Express 애플리케이션에서 쿠키를 쉽게 다룰 수 있도록 도와주는 미들웨어이다.
cookie-parser란?
- HTTP 요청에서 쿠키를 파싱하여 req.cookies 또는 req.signedCookies 객체로 변환해준다.
- 서명된 쿠키(signed cookie)도 지원하여, 쿠키의 무결성을 검증할 수 있다.
- Express에서 쿠키 값을 쉽게 읽고 조작할 수 있도록 도와준다.
설치 방법
npm install cookie-parser
사용법
1. 기본 사용 (일반 쿠키)
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
app.use(cookieParser()); // 쿠키 파싱 미들웨어 추가
app.get('/', (req, res) => {
console.log(req.cookies); // { key: 'value' } 형태로 쿠키 출력
res.send('쿠키 확인!');
});
app.listen(3000, () => console.log('Server running on port 3000'));
- req.cookies를 통해 클라이언트가 보낸 쿠키를 확인할 수 있다.
2. 서명된 쿠키 사용
app.use(cookieParser('mySecretKey')); // 쿠키 서명 키 추가
app.get('/set-signed-cookie', (req, res) => {
res.cookie('signedCookie', 'secureValue', { signed: true });
res.send('서명된 쿠키가 설정되었습니다.');
});
app.get('/get-signed-cookie', (req, res) => {
console.log(req.signedCookies); // 서명된 쿠키 출력
res.send(req.signedCookies);
});
- signed: true 옵션을 사용하면 서명된 쿠키를 설정할 수 있다.
- req.signedCookies를 사용하면 서명된 쿠키를 확인할 수 있다.
3. 주요 메서드
메서드 | 설명 |
req.cookies | 일반 쿠키 객체 |
req.signedCookies | 서명된 쿠키 객체 |
res.cookie(name, value, options) | 쿠키 설정 |
res.clearCookie(name, options) | 쿠키 삭제 |
res.cookie('username', 'JohnDoe', {
maxAge: 1000 * 60 * 60 * 24, // 1일
httpOnly: true, // JavaScript에서 접근 불가능 (보안 강화)
secure: true, // HTTPS에서만 전송됨
signed: true // 서명된 쿠키
});
요약
- cookie-parser는 HTTP 요청에서 쿠키를 쉽게 파싱할 수 있도록 도와준다.
- 일반 쿠키(req.cookies)와 서명된 쿠키(req.signedCookies)를 다룰 수 있다.
- res.cookie()를 사용하여 쿠키를 설정할 수 있다.
- 보안 옵션 (httpOnly, secure, signed)을 활용하면 안전한 쿠키 관리를 할 수 있다.