api.so-manager-dev.com/app/Http/Middleware/ApiKeyAuthentication.php
Your Name 0b4acd7475
All checks were successful
Deploy api / deploy (push) Successful in 22s
Batch & API
2026-01-16 19:28:13 +09:00

48 lines
1.2 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class ApiKeyAuthentication
{
/**
* API Key認証処理
*
* @param Request $request
* @param Closure $next
* @return Response
*/
public function handle(Request $request, Closure $next): Response
{
$apiKey = $request->header('X-API-Key');
// APIキー未指定
if (empty($apiKey)) {
return response()->json([
'error' => [
'code' => 'E01',
'message' => '認証エラー: APIキーが指定されていません。'
]
], 401);
}
// 有効なAPIキーリストを取得
$validApiKeys = config('api.valid_keys', []);
// APIキー検証
if (!in_array($apiKey, $validApiKeys, true)) {
return response()->json([
'error' => [
'code' => 'E01',
'message' => '認証エラー: APIキーが無効です。'
]
], 401);
}
return $next($request);
}
}