Skip to content

Conversation

@joyewon0705
Copy link
Collaborator

@joyewon0705 joyewon0705 commented Sep 25, 2025

📌 개요

  • 로그인 API 구현 및 테스트 작성
  • 개발 환경에서 실행 시 기본 계정을 자동 생성하는 초기 데이터 추가

🔨 작업 내용

1. 로그인 API 구현

  • AuthControllerPOST /api/auth/login 추가

    • username + password로 로그인
    • 성공 시:
      • Authorization: Bearer {accessToken} 헤더 발급
      • Set-Cookie: refreshToken=...; HttpOnly 쿠키 발급
      • Body에 RsData<UserResponse> 반환
  • UserService#login 로직 구현

    • 사용자 조회 → 비밀번호 검증 → 상태 검증(PENDING, SUSPENDED, DELETED)
    • JWT Access/Refresh Token 발급 (JwtTokenProvider)
    • Refresh Token을 HttpOnly 쿠키로 저장
    • Access Token을 응답 헤더에 설정
    • UserResponse 반환

2. 예외 처리

  • 상태별 예외 정의 (ErrorCode)
    • 잘못된 아이디/비밀번호 → 401
    • 이메일 미인증/정지 계정 → 403
    • 탈퇴 계정 → 410

3. 테스트 코드 추가

  • Service Test (UserServiceTest)
  • Controller Test (AuthControllerTest)
  • 기존 회원가입 테스트와 함께 통합 검증

4. 초기 데이터 마련

  • DevInitData 추가

    • 애플리케이션 실행 시 개발 환경(dev)에서 기본 계정 자동 생성
    • user1 / 12345678! (USER)
    • user2 / 12345678! (USER)
    • admin / 12345678! (ADMIN)
  • 실행 시 DB가 비어있을 때만 데이터 삽입

🔗 관련 이슈

Closes #64

📝 참고 사항

  • 회원가입 시 사용자 상태를 임시로 ACTIVE로 설정 -> 추후 이메일 인증 API 구현 후 수정 예정
    • 예정 흐름: 회원가입 직후 status=PENDING -> 이메일 인증 후 status=ACTIVE
  • 로그아웃 API, 인증 토큰(access) 재발급 API, 이메일 인증 API 순으로 구현 예정

✅ 체크리스트

  • 기능 동작 확인
  • 테스트 코드 작성
  • 문서/주석 추가 및 최신화

@github-actions github-actions bot changed the title Feat: 로그인 API 구현 Feat: 로그인 API 구현 (#64) Sep 25, 2025
@joyewon0705 joyewon0705 merged commit 8dcccdb into dev Sep 25, 2025
5 checks passed
@joyewon0705 joyewon0705 deleted the Feat/64 branch September 25, 2025 02:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants