[typescript] 타입스크립트와 Express.js를 이용한 JWT 인증 구현 사례

소개

이번 포스트에서는 타입스크립트와 Express.js를 사용하여 JWT(Json Web Token)를 이용한 사용자 인증 시스템을 구현하는 방법에 대해 알아보겠습니다.

JWT란 무엇인가요?

JWT는 JSON Web Token의 약자로, 웹 표준으로 정의된 인증을 위한 토큰 방식입니다. 사용자의 정보를 안전하게 전송함과 동시에 서버가 사용자를 식별할 수 있는 정보를 포함하고 있습니다. 이 토큰은 암호화되어 있어 안전한 인증 방식으로 활용될 수 있습니다.

환경 설정

구현 방법

  1. Express.js 애플리케이션 설정
import express from 'express';
const app = express();
app.use(express.json());
  1. JWT 라이브러리 설치 및 설정
import jwt from 'jsonwebtoken';
const secretKey = 'your_secret_key';

function generateToken(user) {
  const token = jwt.sign(user, secretKey, { expiresIn: '1h' });
  return token;
}
  1. 사용자 로그인 및 토큰 생성
app.post('/login', (req, res) => {
  // 사용자 정보 확인 및 토큰 생성
  const user = req.body;
  const token = generateToken(user);
  res.json({ token });
});
  1. 인증 미들웨어 설정
function authenticateToken(req, res, next) {
  const token = req.headers['authorization'];
  if (token == null) return res.sendStatus(401);

  jwt.verify(token, secretKey, (err, user) => {
    if (err) return res.sendStatus(403);
    req.user = user;
    next();
  });
}

app.get('/profile', authenticateToken, (req, res) => {
  res.json({ message: 'Access Granted', user: req.user });
});

이렇게 구현함으로써 타입스크립트와 Express.js를 이용한 JWT 인증 시스템을 구현할 수 있습니다.

더 많은 자세한 정보 및 예제는 jsonwebtoken 라이브러리의 공식 문서를 참고하시기 바랍니다.

감사합니다.