졸업작품 9일차

임선구·2025년 5월 18일

졸업작품

목록 보기
9/29

오늘의 잔디


📌 [JWT 인증 구현] 사용자 회원가입 및 로그인 기능 개발 (Spring Boot)

오늘은 Spring Boot 기반 백엔드 프로젝트에 JWT(Json Web Token)를 이용한 사용자 인증 기능을 구현했습니다. 실제 실무에서도 많이 쓰이는 구조라 백엔드 포트폴리오에 아주 잘 어울리는 기능입니다.

✅ 주요 작업 내용

1. 회원가입 API (POST /api/auth/signup)

  • 사용자 정보를 DB에 저장

  • api/auth/signup으로 회원가입

  • 비밀번호는 BCryptPasswordEncoder로 암호화 후 저장

  • 이미 존재하는 사용자일 경우 409 Conflict 응답
// 예시 요청
{
  "username": "testuser",
  "password": "1234"
}

2. 로그인 API (POST /api/auth/login)

  • 사용자명 + 비밀번호 일치 시 JWT 토큰 발급

로그인 성공 시 HTTP 200 응답 + JWT 문자열 - 반환

// 응답 (JWT 토큰)
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0dXNlciIsImV4cCI6MTY5NDk0NDgwMH0...

3. JWT 유틸리티 (JwtUtil)

  • 토큰 생성: createToken(username)

  • 토큰 검증: validateToken(token)

  • 사용자명 추출: getUsernameFromToken(token)

⚠️ 오류 해결 Tip
WeakKeyException 발생 시에는 HS256 알고리즘에 적합한 보안 키로 변경해야 합니다.
io.jsonwebtoken.security.Keys.secretKeyFor(SignatureAlgorithm.HS256) 메서드를 활용해 키를 생성해 해결했습니다.


🛠 사용 기술

  • Spring Boot 3.4.5

  • Spring Security

  • JPA + MySQL

  • jjwt (0.11.5)


📝 오늘의 회고

  • JWT 토큰 발급 구조를 처음부터 직접 구성해보면서 Spring Security 동작 흐름을 이해할 수 있었다.

  • 클라이언트(Postman)에서 직접 토큰을 발급받고 응답을 확인해보는 과정이 흥미로웠다.

  • 이후에는 발급된 토큰을 통해 인증이 필요한 API를 호출하고 사용자 정보를 식별하는 기능을 개발할 계획이다.








profile
끝까지 가면 내가 다 이겨

0개의 댓글