Files
sam-api/routes/api/v1/auth.php
권혁성 a96499a66d feat: API 라우터 분리 및 버전 폴백 시스템 구현
- api.php를 13개 도메인별 파일로 분리 (1,479줄 → 61줄)
- ApiVersionMiddleware 생성 (헤더/쿼리 기반 버전 선택)
- v2 요청 시 v2 없으면 v1으로 자동 폴백
- 지원 헤더: Accept-Version, X-API-Version, api_version 쿼리

분리된 도메인:
auth, admin, users, tenants, hr, finance, sales,
inventory, production, design, files, boards, common

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 17:30:19 +09:00

33 lines
1.3 KiB
PHP

<?php
/**
* 인증 관련 API 라우트 (v1)
*
* - 로그인/로그아웃
* - 회원가입
* - 토큰 관리
* - 내부 서버간 통신
*/
use App\Http\Controllers\Api\V1\ApiController;
use App\Http\Controllers\Api\V1\InternalController;
use App\Http\Controllers\Api\V1\RefreshController;
use App\Http\Controllers\Api\V1\RegisterController;
use Illuminate\Support\Facades\Route;
// 내부 서버간 통신 (API Key, Bearer 인증 제외 - HMAC 인증 사용)
Route::prefix('internal')->group(function () {
Route::post('/exchange-token', [InternalController::class, 'exchangeToken'])->name('v1.internal.exchange-token');
});
// API KEY 인증 (글로벌 미들웨어로 이미 적용됨)
Route::get('/debug-apikey', [ApiController::class, 'debugApikey']);
// Auth API
Route::post('login', [ApiController::class, 'login'])->name('v1.users.login');
Route::middleware('auth:sanctum')->post('logout', [ApiController::class, 'logout'])->name('v1.users.logout');
Route::post('signup', [ApiController::class, 'signup'])->name('v1.users.signup');
Route::post('token-login', [ApiController::class, 'tokenLogin'])->name('v1.auth.token-login'); // MNG → DEV 자동 로그인
Route::post('refresh', [RefreshController::class, 'refresh'])->name('v1.token.refresh');
Route::post('register', [RegisterController::class, 'register'])->name('v1.register');