# 쿠키 보내기
const express = require('express');
const app = express();
app.get('/setname', (req, res) => {
res.cookie('name', 'stevie chicks');
res.cookie('animal', 'dog');
res.send('send you a cookie!!');
})
app.listen(3000, ()=> {
console.log('server')
})
get 요청에서 res.cookie로 쿠키를 생성해서 전송할 수 있다.
쿠키는 key 와 value 으로 전송된다.
animal이 key / dog가 value가 된다.
저장된 쿠키는 개발자 옵션에서 확인할 수 있다.
저장된 쿠키는 이제 localhost:3000 서버의 요청에는 계속 남아있다.
# 쿠키 파서
이제 저장된 쿠키를 활용해보자.
express에 내장되있는 기능이 아니라
패키지를 새로 설치해야 한다.
https://www.npmjs.com/package/cookie-parser
cookie-parser
Parse HTTP request cookies. Latest version: 1.4.6, last published: 2 years ago. Start using cookie-parser in your project by running `npm i cookie-parser`. There are 8293 other projects in the npm registry using cookie-parser.
www.npmjs.com
npm i cookie-parser
패키지를 다 설치했으면
index.js 파일에 파서 관련 코드를 추가해줘야 한다.
const express = require('express');
const app = express();
// -----------------------추가
const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.get('/greet', (req, res) => {
const { name = 'No-name'} = req.cookies;
res.send(`hey there, ${name}`);
})
//!! -----------------------
app.get('/setname', (req, res) => {
res.cookie('name', 'stevie chicks');
res.cookie('animal', 'dog');
res.send('send you a cookie!!');
})
app.listen(3000, ()=> {
console.log('server')
})
값이 없을때 No-name을 디폴트로 설정하고 req.cookies로 정보를 받아올 수 있다.
받은 정보를 /greet 에서 name을 출력해보았다.
쿠키로 저장한 name 이 잘 출력되었다.
# 쿠키 서명
쿠키를 중간에서 조작할 수 없게 서명이라는 것을 한다.
express 에서 서명하는 법을 알아보려고 한다.
const cookieParser = require('cookie-parser');
app.use(cookieParser('signcookie')); // 비밀키
일단 쿠키 파서가 필요하고 비밀키를 전달해줘야 한다.
아래코드에서 서명한 쿠키의 다른점을 보자
app.get('/setname', (req, res) => {
res.cookie('name', 'stevie chicks');
res.cookie('animal', 'dog');
res.cookie('fruit', 'apple', {signed : true}); // 서명 쿠키
res.send('send you a cookie!!');
})
signed : true 라는 코드가 추가되었다.
일반 쿠키를 확인하는 req.cookies로는 확인이 불가능하다.
// 쿠키 확인하기
app.get('/signcookie', (req, res) => {
console.log(req.cookies);
console.log(req.signedCookies); // 서명 쿠키
})
그냥 쿠키와는 좀 다른 singedCookies 메소드로 확인 가능하다.
'nodejs' 카테고리의 다른 글
[node.js] express 세션, 플래시 (0) | 2023.06.16 |
---|---|
[node.js] express 에러, 비동기 에러 처리 (0) | 2023.06.14 |
[node.js] mongoose를 미들웨어로 정의하기 (0) | 2023.05.30 |
[node.js / express] REST API, RESTful API, npm(UUID, method_override) CRUD 구현 (0) | 2023.05.19 |
[node.js / express] 요청 구문 분석하기(get, post) (0) | 2023.05.18 |