Resolve "[#29] 요청자 인증 체계 필요"
작업 내용
- 기능 추가
배경
- 로그인 상태 및 사용자 권한에 따른 API 사용 제어 필요
세부 내용 및 스크린샷
- JWT 기반 인증 기능 추가
-
필터 체인에 인증 정보 로드 필터 추가 -
쿠키에 담겨온 Refresh Token 유효기간이 7일 미만일 시 자동 재발급
-
- 요청용 DTO 추가
-
회원가입용 DTO -
Refresh Token 요청용(로그인) DTO -
Access Token 요청용 DTO
-
- 응답용 베이스 DTO 추가
-
값 단일 응답용 DTO -
값 리스트 응답용 DTO -
에러 정보 응답용 DTO
-
- 도메인 개선
-
Spring Security 에서 사용할 수 있도록 UserDetails 상속 -
유저 권한 enum 추가
-
- 유저 관리용 서비스 추가
-
회원 가입 메서드 -
로그인 메서드
-
- API 엔드포인트 추가
-
회원가입 ( /api/v1/auth/register
) -
Refresh Token 발급 ( /api/v1/auth/refresh
) -
Access Token 발급 ( /api/v1/auth/access
)
-
- API Exception Handler 설정
-
토큰 예외 발생 시 401 Unauthorized response 반환
-
- API 경로 별 요청 제한 설정 추가
-
/v1/auth/**
는 인증 없이 사용 가능 -
그 외 엔드포인트는 로그인 필요하도록 제한
-
리뷰어
리뷰 우선순위
- 빠르게
체크리스트
- 운영 환경에 JWT 비밀키값을 k8s secret에 등록하였는지 확인
연관 이슈
- Closes #41 (closed)
Edited by Bell