쿠키: 때로는 복수형 쿠키도 사용됩니다. 유형은 "작은 텍스트 파일"이며, 이는 사용자의 신원을 식별하고 세션 추적을 수행하기 위해 일부 웹사이트에서 사용자의 로컬 단말기에 저장하는 데이터(일반적으로 암호화됨)입니다. 정보는 사용자의 클라이언트 컴퓨터에 일시적 또는 영구적으로 저장됩니다.
노드로 쿠키를 작동하려면 cookie-parser
모듈
npm i cookie-parser -s가 필요합니다.
다음으로 이 모듈을 파일에 도입합니다.
//express 모듈 도입 const express = require('express') // 익스프레스 인스턴스화 const 앱 = 표현() //쿠키 모듈 작업 const cookieParser = require('cookie-parser'); //쿠키 서명 추가 app.use(cookieParser('Really outrageous')); //쿠키 미들웨어 사용, 암호화된 값은 'Really outrageous'입니다.
매개변수 세부 정보
name: 쿠키를 고유하게 식별하는 이름입니다.
값: 쿠키에 저장된 문자열의 값입니다.
도메인: 쿠키는 해당 도메인에 대해 유효합니다.
경로: 이 쿠키의 영향을 받는 경로를 나타냅니다. 브라우저는 이 구성에 따라 지정된 도메인의 일치하는 경로로 쿠키를 보냅니다.
만료: 만료 시간, 쿠키가 만료되는 시기를 나타냅니다. 이 시간이 설정되지 않으면 페이지가 닫힐 때 브라우저가 모든 쿠키를 삭제하지만 만료 시간을 직접 설정할 수도 있습니다.
참고: 클라이언트와 서버에 설정된 시간이 일치하지 않으면 사용 만료 시 편차가 발생합니다.
max-age: 이 쿠키가 만료되는 기간(초)을 브라우저에 알려주는 데 사용됩니다. 일반적으로 max-age는 만료보다 우선순위가 높습니다.
HttpOnly: document.cookie 스크립트가 값을 변경하는 것을 허용하지 않도록 브라우저에 지시합니다. 이 값은 document.cookie에도 표시되지 않지만 이 쿠키는 http 요청에 전달됩니다.
참고: 이 값은 스크립트에서는 권장되지 않지만 브라우저 설치 디렉터리에 파일 형식으로 존재합니다. 이 설정은 일반적으로 서버 측에서 설정됩니다.
secure: 보안 플래그를 지정하면 secure가 true인 경우 HTTP에서는 유효하지 않으며 HTTPS에서만 유효합니다. 이는 생성된 쿠키가 HTTPS 연결에서 세션 확인을 위해 브라우저에 의해서만 전달될 수 있음을 의미합니다. HTTP 연결은 이 정보를 전달하지 않으므로 일반적으로 들리지 않습니다.
읽기 문제와 관련하여
req.cookies: 암호화되지 않은 쿠키를 읽습니다.
req.signedCookies: 암호화된 쿠키를 읽습니다.
사례
app.get('/', (req, res) => { res.cookie('cart', { 항목: [1, 2, 3] }, { maxAge: 10000 * 2, httpOnly: true, signed: true, path: '/' }); res.cookie('user', 'Zhang San', { httpOnly: true, 경로: '/user', 서명: true }) res.send('확인') console.log(req.cookies) console.log(req.signedCookies) })
app.get('/user', (req, res) => { console.log(req.cookies) res.send(req.signedCookies) })
app.get('/news', function (req, res) { res.cookie('Age', 'Dabai', { maxAge: 10000 * 2, httpOnly: true, signed: true }) res.cookie('Age', '0', { maxAge: 0 }) //쿠키 삭제 res.send('안녕하세요 nodejs 뉴스') })
maxAge
가 0
이 되면 cookie
삭제됩니다.