- 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>
33 lines
1.3 KiB
PHP
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');
|