[nodejs] JWT 토큰

이번에는 Node.js에서 JWT(JSON Web Token)을 생성하고 검증하는 방법에 대해 알아보겠습니다. JWT는 클라이언트와 서버 간의 정보를 안전하게 전달하기 위한 토큰 기반 인증 방식입니다.

JWT란 무엇인가요?

JWT는 JSON 형식을 사용하여 정보를 안전하게 전달하는 방법을 정의한 개방형 표준입니다. 간단하게 말해, 서버가 특정 정보를 포함한 토큰을 생성하여 클라이언트로 전달하고, 클라이언트는 이 토큰을 갖고 서버에 요청을 보내는 방식입니다.

JWT 토큰 생성하기

Node.js에서는 jsonwebtoken 라이브러리를 사용하여 JWT 토큰을 생성할 수 있습니다. 먼저 패키지를 설치합니다.

npm install jsonwebtoken

다음은 JWT 토큰을 생성하는 간단한 예제 코드입니다.

const jwt = require('jsonwebtoken');

const payload = { user_id: 12345 };
const secretKey = 'your_secret_key';

const token = jwt.sign(payload, secretKey, { expiresIn: '1h' });
console.log(token);

위의 코드는 user_id 12345를 포함한 페이로드를 사용하여 1시간 동안 유효한 JWT 토큰을 생성합니다. 생성된 토큰은 ‘token’ 변수에 저장되며, 이를 클라이언트에게 전달할 수 있습니다.

JWT 토큰 검증하기

토큰을 생성하는 것 외에도, Node.js에서는 jsonwebtoken 라이브러리를 사용하여 JWT 토큰을 검증할 수 있습니다. 토큰의 유효성을 검사하는 방법은 다음과 같습니다.

jwt.verify(token, secretKey, (err, decoded) => {
  if (err) {
    console.error('토큰이 유효하지 않습니다.');
  } else {
    console.log('토큰이 성공적으로 검증되었습니다.', decoded);
  }
});

이를 통해 토큰의 유효성을 검사하고, 필요한 정보를 획득할 수 있습니다.

이제, Node.js에서 JWT 토큰을 생성하고 검증하는 방법에 대해 알아보았습니다. JWT를 사용하면 서버와 클라이언트 간에 안전하게 정보를 교환할 수 있는 간편하고 효과적인 방법을 제공합니다.

참고 자료