피드로 돌아가기
Building an Authentication System With Express JWT: A Step-by-Step Guide
Dev.toDev.to
Backend

Express와 JWT를 활용해 사용자가 토큰으로 인증하는 API 보안 시스템을 단계별로 구축하는 방법을 소개한다.

Building an Authentication System With Express JWT: A Step-by-Step Guide

Gloria Tejuosho2026년 3월 31일18beginner

Context

기존 Express API는 별도의 인증 없이 누구나 요청을 보낼 수 있는 상태였다. 실제 서비스에서는 사용자가 계정을 생성하고 로그인 후 토큰을 발급받아 이후 요청에서 인증을 수행해야 한다.

Technical Solution

  • MongoDB Atlas 연결 시 mongoose.connect() 메서드로 데이터베이스 연결 함수를 모듈화한다
  • validator 패키지로 이메일 유효성을 검증하고 userSchema에 name, email, password 필드를 정의한다
  • Bcrypt와 Salt를 적용해.comparePassword() 메서드를 스키마에 추가하고 비밀번호를 해싱 저장한다
  • jwt.sign()으로 { name, id } 페이로드를 담고 JWT_SECRET 환경변수와 만료기간 3d를 설정해 토큰을 생성한다
  • 로그인 시 findOne()으로 사용자를 조회하고 select('+password')로 해시 비밀번호 필드를 포함시킨다

Impact

JWT 토큰 만료기간을 3d로 설정해 장기 세션 유지와 보안을 균형 있게 구현했다.

Key Takeaway

비밀번호는 반드시 Bcrypt로 해싱 후 저장하고, 토큰 발급 시 페이로드에 식별 정보를 포함시켜 클라이언트 요청에서 사용자를 구분해야 한다.


Express 기반 API에서 MongoDB 저장소와 함께 JWT 인증을 적용 시 bcrypt.comparePassword() 메서드로 로그인 검증과 토큰 발급을 구현할 수 있다.

원문 읽기