더북(TheBook)

쿠키를 생성/제거하려면 res.cookie, res.clearCookie 메서드를 사용해야 합니다. res.cookie(키, 값, 옵션) 형식으로 사용합니다. 옵션은 3.3절에서 살펴본 쿠키 옵션과 동일합니다. domain, expires, httpOnly, maxAge, path, secure 등이 있습니다.

res.cookie('name', 'zerocho', { 
  expires: new Date(Date.now() + 900000),
  httpOnly: true, 
  secure: true,
});
res.clearCookie('name', { httpOnly: true, secure: true });

쿠키를 지우려면, 키와 값 외에도 옵션도 정확히 일치해야 쿠키가 지워집니다. 단, expiresmaxAge 옵션은 일치할 필요가 없습니다.

옵션 중에 signed라는 옵션이 있는데, 이를 true로 설정하면 쿠키 뒤에 서명이 붙습니다. 내 서버가 쿠키를 만들었다는 것을 검증할 수 있으므로 대부분의 경우 서명 옵션을 켜 두는 것이 좋습니다. 서명을 위한 비밀 키는 cookieParser 미들웨어에 인수로 넣은 process.env.COOKIE_SECRET이 됩니다.