Files
sam-api/app/Http/Controllers/Api/V1/InternalController.php

47 lines
1.2 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers\Api\V1;
use App\Helpers\ApiResponse;
use App\Http\Controllers\Controller;
use App\Http\Requests\Internal\ExchangeTokenRequest;
use App\Services\InternalTokenService;
/**
* 내부 서버간 통신 컨트롤러
*
* MNG API 서버간 인증 토큰 교환 등을 처리합니다.
*/
class InternalController extends Controller
{
public function __construct(
private InternalTokenService $tokenService
) {}
/**
* 토큰 교환
*
* MNG 서버에서 HMAC 서명된 페이로드로 API 토큰을 발급받습니다.
*/
public function exchangeToken(ExchangeTokenRequest $request)
{
$validated = $request->validated();
$result = $this->tokenService->exchange(
userId: $validated['user_id'],
tenantId: $validated['tenant_id'],
exp: $validated['exp'],
signature: $validated['signature']
);
if (! $result['success']) {
return ApiResponse::error($result['error'], 401);
}
return ApiResponse::success(
data: $result['data'],
message: __('message.internal.token_exchanged')
);
}
}