- SAMInfo.php Auth 태그 상세화
- 인증 흐름 설명 추가 (API Key + Bearer Token)
- 사용 예시 코드 추가
- IP 기반 접근 제어 안내 추가
- RegisterApi.php 보안 어노테이션 추가
- security={"ApiKeyAuth": {}} 설정
- "Authentication: Not Required" 오류 해결
- SWAGGER_AUDIT.md 작업 추적 문서 생성
- Phase별 점검 계획 수립
- 표준 체크리스트 정의
- 진행 상황 추적 체계 구축
78 lines
2.2 KiB
PHP
78 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Swagger\v1;
|
|
|
|
/**
|
|
* @OA\Info(
|
|
* version="1.0.0",
|
|
* title="SAM API Documentation",
|
|
* description="===============================<br><strong>[공통 에러 응답 포맷]</strong><br>400: 필수 파라미터 누락<br>401: 인증 실패<br>403: 권한 없음<br>404: 존재하지 않는 URI 또는 데이터<br>405: 허용되지 않는 메서드<br>500: 서버 에러<br><br><strong>모든 에러 응답 예시:</strong><br>{<br> "success": false,<br> "message": "에러 메시지",<br> "data": null<br>}<br>===============================",
|
|
*
|
|
* @OA\Contact(
|
|
* email="shine1324@gmail.com"
|
|
* )
|
|
* )
|
|
*
|
|
* @OA\Server(
|
|
* url=L5_SWAGGER_CONST_HOST,
|
|
* description=L5_SWAGGER_CONST_NAME
|
|
* )
|
|
*
|
|
* @OA\SecurityScheme(
|
|
* securityScheme="ApiKeyAuth",
|
|
* type="apiKey",
|
|
* in="header",
|
|
* name="X-API-KEY"
|
|
* )
|
|
* @OA\SecurityScheme(
|
|
* securityScheme="BearerAuth",
|
|
* type="http",
|
|
* scheme="bearer",
|
|
* bearerFormat="JWT"
|
|
* )
|
|
*
|
|
* @OA\Tag(
|
|
* name="Auth",
|
|
* description="로그인/로그아웃 및 인증 관련 API
|
|
*
|
|
* **인증 흐름 (Authentication Flow)**
|
|
* 1. 모든 API 요청은 반드시 X-API-KEY 헤더가 필요합니다 (API Key 인증)
|
|
* 2. 사용자 인증이 필요한 API는 추가로 Bearer 토큰이 필요합니다 (JWT 인증)
|
|
*
|
|
* **API Key 사용 예시:**
|
|
* ```
|
|
* X-API-KEY: your-api-key-here
|
|
* ```
|
|
*
|
|
* **Bearer Token 사용 예시:**
|
|
* ```
|
|
* Authorization: Bearer 1|abc123xyz456
|
|
* ```
|
|
*
|
|
* **IP 기반 접근:**
|
|
* - API Key가 없는 경우, IP 주소로 접근 제어가 가능합니다
|
|
* - 단, 운영 환경에서는 반드시 API Key 사용을 권장합니다"
|
|
* )
|
|
* @OA\Tag(
|
|
* name="API Key 인증",
|
|
* description="API Key 유효성 검사"
|
|
* )
|
|
* @OA\Tag(
|
|
* name="User",
|
|
* description="사용자 자기 계정 관련 API"
|
|
* )
|
|
* @OA\Tag(
|
|
* name="Member",
|
|
* description="회원 관리 API"
|
|
* )
|
|
* @OA\Tag(
|
|
* name="Admin-Users",
|
|
* description="관리자 사용자 관리 API"
|
|
* )
|
|
* @OA\Tag(
|
|
* name="Product",
|
|
* description="제품 관련 API"
|
|
* )
|
|
*/
|
|
class SAMInfo {}
|