[JWT 인증 시스템 추가] README.md에 JWT 인증 시스템에 대한 설명 추가 및 Access Token과 Refresh Token의 구성 및 자동 갱신 로직 설명. application.properties에서 Access Token의 만료 시간을 수정하여 15분으로 설정.

This commit is contained in:
2025-08-20 16:35:35 +09:00
parent 8aa96d5fbd
commit 1b46b95ad5
2 changed files with 31 additions and 6 deletions

View File

@@ -121,7 +121,29 @@ public enum ApiResponseCode {
- **일관된 구조**: `code`, `message`, `description`, `data` 필드로 표준화
- **제네릭 활용**: `<T>`를 통해 다양한 데이터 타입 지원
### 3. API 문서화 (Swagger)
### 3. JWT 인증 시스템
#### 토큰 구성
- **Access Token**: 15분 (900,000ms) - API 요청 시 사용
- **Refresh Token**: 7일 (604,800,000ms) - 쿠키에 저장, 자동 갱신
#### 자동 토큰 갱신
**모든 API 요청마다 자동으로 처리됩니다:**
1. **Access Token 유효**: 정상 요청 처리
2. **Access Token 만료**: Refresh Token으로 자동 갱신
3. **새 Access Token 발급**: 응답 헤더에 자동 설정
4. **Refresh Token 갱신**: 보안을 위해 매번 새로운 토큰 발급
#### 주요 컴포넌트
- **`JwtTokenIssuanceFilter`**: 로그인 시 토큰 발급
- **`JwtTokenValidationFilter`**: 요청마다 토큰 검증 및 갱신
- **`JwtUtils`**: 토큰 생성, 검증, 갱신 유틸리티
### 4. API 문서화 (Swagger)
#### Swagger UI 접속
@@ -147,7 +169,7 @@ public enum ApiResponseCode {
- **SwaggerConfig.java**: OpenAPI 기본 정보 설정
- **application.properties**: Swagger UI 커스터마이징
### 4. 트랜잭션 관리
### 5. 트랜잭션 관리
#### 기본 설정
@@ -171,7 +193,7 @@ public class MemberServiceImpl {
- **메서드별**: 데이터 수정 시에만 `@Transactional` 개별 적용
- **설정**: `spring.jpa.open-in-view=false` (성능 최적화)
### 5. 오류 등록 및 사용
### 6. 오류 등록 및 사용
#### 오류 코드 등록
@@ -198,7 +220,7 @@ throw new ApiException(ApiResponseCode.USER_ID_DUPLICATE);
- **예외 클래스**: `ApiException`으로 비즈니스 로직 예외 처리
- **자동 처리**: `GlobalExceptionHandler`가 일관된 응답 형태로 변환
### 6. 로깅 시스템
### 7. 로깅 시스템
#### @LogExecution 어노테이션 사용법
@@ -217,16 +239,19 @@ public ResponseEntity<ApiResponseDto<CreateMemberResponseDto>> createMember(@Req
##### 로그 출력 예시
**메서드 시작 시:**
```
[START] 회원 등록 | 호출경로: MemberController.createMember | 사용자: 고명빈(kmbin92)
```
**메서드 성공 시:**
```
[SUCCESS] 회원 등록 | 호출경로: MemberController.createMember | 사용자: 고명빈(kmbin92) | 시간: 200ms
```
**메서드 실패 시:**
```
[FAILED] 회원 등록 | 호출경로: MemberController.createMember | 사용자: 고명빈(kmbin92) | 시간: 23ms | 오류: 이미 존재하는 사용자 ID입니다
```