웹 풀스택

[Node.js] 쿠키를 사용하여 JWT 보내기

kevinmj12 2025. 3. 1. 18:35

쿠키

https://www.npmjs.com/package/cookie

 

cookie

HTTP server cookie parsing and serialization. Latest version: 1.0.2, last published: 3 months ago. Start using cookie in your project by running `npm i cookie`. There are 4732 other projects in the npm registry using cookie.

www.npmjs.com

npm install cookie

먼저 쿠키를 사용하기 위해 npm install cookie로 모듈을 설치해준다.

 

  // jwt 발급
  const token = jwt.sign(
    {
      email: loginUser.email,
      name: loginUser.name,
    },
    process.env.JWT_SIGN
  );

  // 쿠키에 jwt 포함시킴
  res.cookie("token", token);

  res.json({
    message: `${loginUser.name}님 환영합니다!`,
  });

다음은 로그인을 처리하는 코드이다.

사용자가 로그인을 시도하려 할 때 email과 name이 포함된 데이터를 포함하여 서명을 하고 JWT를 생성한다.

그리고 res.cookie()를 통해 토큰을 전달해준다.

 

 

Postman을 통해 확인을 해보면 메시지뿐만 아니라, 쿠키까지 함께 전송이 된 것을 확인할 수 있다.

 

HttpOnly 설정

쿠키는 클라이언트에서 JavaScript로 접근할 수 있기 때문에 XSS(Cross Site Scripting)와 같은 공격에 취약할 수 있다.

그럴 때 HttpOnly 속성을 사용하면 JavaScript로 접근할 수 없게 되어 쿠키가 탈취당하는 문제를 해결할 수 있다.

 

res.cookie("token", token, { httpOnly: true });

Node.js에서 이를 적용하는 방법은 매우 간단한데, 맨 뒤에 { httpOnly: true}를 추가해주면 된다.

 

그 결과 아래 사진처럼 HttpOnly가 true로 쿠키가 전송되는 것을 볼 수 있다.