Commit Graph

24 Commits

Author SHA1 Message Date
2e96660937 fix: CORS preflight 요청 처리 개선 및 X-API-KEY 헤더 허용
- CorsMiddleware: X-API-KEY 헤더를 Access-Control-Allow-Headers에 추가
- CorsMiddleware: OPTIONS 요청을 미들웨어 체인 진입 전에 즉시 처리하여 ApiKeyMiddleware 우회
- CorsMiddleware: PATCH 메서드 추가 및 Max-Age 86400초 설정
- ApiKeyMiddleware: 불필요한 OPTIONS 체크 로직 제거 (CorsMiddleware에서 이미 처리)

[근본 원인]
- React 프론트엔드에서 커스텀 헤더(X-API-KEY) 사용 시 브라우저가 자동으로 Preflight 요청(OPTIONS) 전송
- 기존 CorsMiddleware에서 X-API-KEY 헤더가 Allow-Headers 목록에 없어 CORS 정책 위반
- OPTIONS 요청이 ApiKeyMiddleware에서 401로 차단되어 Preflight 실패

[해결 방안]
- OPTIONS 요청은 CorsMiddleware에서 즉시 200 OK 응답 (인증 미들웨어 우회)
- X-API-KEY를 명시적으로 허용 헤더 목록에 추가
- 실제 GET/POST 요청은 기존대로 ApiKeyMiddleware에서 정상 검증
2025-11-24 13:10:26 +09:00
688548ba2a test: ItemMaster API 통합 테스트 작성 및 버그 수정
주요 작업:
- ItemMaster API 통합 테스트 작성 (12개 테스트, 100% 통과)
- 로그인 → API 호출 실제 플로우 시뮬레이션
- CustomTab, UnitOption CRUD 및 Reorder 테스트

버그 수정:
- ApiKeyMiddleware: 로그인 엔드포인트 API Key 필수화
- ReorderRequest: validation 규칙 수정 (범용성 확보)
- 5개 Controller: ApiResponse namespace 수정
- routes/api.php: reorder 라우트 순서 수정

마이그레이션:
- section_templates, tab_columns 테이블 추가

테스트 결과: 12/12 통과 (82 assertions)
2025-11-20 20:28:33 +09:00
63ab79b910 fix: ApiKeyMiddleware null route 오류 수정
- request->route()가 null일 때 발생하는 오류 수정
- null-safe 연산자(?->) 및 null coalescing 연산자(??) 사용
- Line 122: route()->uri() → route()?->uri() ?? path()
2025-11-14 14:51:10 +09:00
d20bdb5061 fix: 루트 경로(/) Swagger 접근 허용
- ApiKeyMiddleware 화이트리스트에 '/' 경로 추가
- http://api.sam.kr/ 접근 시 401 에러 해결
2025-11-14 14:41:02 +09:00
d59d210063 fix: Swagger UI 접근을 위한 화이트리스트 추가
- ApiKeyMiddleware 화이트리스트에 'docs', 'docs/*' 경로 추가
- /docs (L5-Swagger UI) 접근 시 401 에러 해결
2025-11-14 14:34:38 +09:00
6f7d754457 feat: API Key 보안 강화 및 Rate Limiting 구현
- 글로벌 미들웨어로 API Key 검증 적용
- 화이트리스트 확장 (Swagger, Health check 등)
- Rate Limiting 미들웨어 추가 (10회/분)
- 보안 로그 강화 (무단 접근 시도 기록)
- 민감 정보 로깅 제외 (password 필드)
2025-11-13 20:30:34 +09:00
798d5149ea feat: API 토큰 관리 시스템 구현 (액세스/리프레시 토큰 분리)
- AuthService: 토큰 발급/갱신 통합 관리
- RefreshController: POST /api/v1/refresh 엔드포인트 추가
- 액세스 토큰 2시간, 리프레시 토큰 7일 (.env 설정)
- TOKEN_EXPIRED 에러 코드로 프론트엔드 자동 리프레시 지원
- 리프레시 토큰 일회성 사용 (보안 강화)
- Swagger 문서 Auth 태그로 통합
2025-11-10 11:17:32 +09:00
f1a2219a46 fix: ApiKeyMiddleware 화이트리스트에 register 엔드포인트 추가
- /api/v1/register를 인증 예외 라우트에 추가
- 회원가입은 로그인 전 작업이므로 Bearer Token 불필요
- "회원정보 정보 없음" 에러 해결
2025-11-07 17:46:21 +09:00
cc206fdbed style: Laravel Pint 코드 포맷팅 적용
- PSR-12 스타일 가이드 준수
- 302개 파일 스타일 이슈 자동 수정
- 코드 로직 변경 없음 (포맷팅만)
2025-11-06 17:45:49 +09:00
00569cf4be fix : Auth - 회원가입 추가 2025-08-18 16:37:02 +09:00
73d06e03b0 fix : 권한관리 기능 추가 (각 기능 확인 필요)
- 메뉴관리
- 역할관리
- 부서관리
- 메뉴, 부서, 역할, 유저 - 권한 연동
2025-08-16 03:25:50 +09:00
9935bba84e fix : 테넌트 없는 회원 처리 및 테넌트 등록시 해당 테넌트 디폴트값 설정 2025-08-14 20:19:51 +09:00
7d607471b8 Revert "fix : User 모델 경로 오류로 인해 User 모델만 밖으로 이동"
This reverts commit 2b82483f64.
2025-07-29 16:04:28 +09:00
2b82483f64 fix : User 모델 경로 오류로 인해 User 모델만 밖으로 이동 2025-07-29 13:33:07 +09:00
1942f51cf7 fix : 모델 경로 수정 2025-07-29 13:00:25 +09:00
4a167b31e5 fix : 회원 인증 실패시 401 전송 2025-07-26 15:52:47 +09:00
214adc8de1 fix : Trait 추가 및 query 디버깅 소스 수정 2025-07-26 14:25:45 +09:00
8a4a7c9508 fix : Member 모델에서 User 모델로 변경 2025-07-26 14:23:13 +09:00
94501d5624 feat : Tenant Scope 추가 - 모델에 해당 유저의 tenant_id 로 자동 매핑 (CommonCode 모델에 추가) 2025-07-25 17:31:08 +09:00
181f1b258f fix : 로그, 알람 설정 수정 2025-07-25 09:12:53 +09:00
939a79ffa3 fit : swagger 내 정보 조회 description 수정 2025-07-24 11:49:29 +09:00
4c2ce55afb fix : Bearer 인증 기능 수정 (추가) 2025-07-22 16:44:26 +09:00
948d3824c7 fix : 오류 수정 - swegger 정상화
(cherry picked from commit e19d7c7508)
2025-07-17 21:49:14 +09:00
ad702d5ccf First Commit (API Project) 2025-07-17 10:05:47 +09:00