arcos-backend/app/Http/Middleware/ArcoTokenMiddleware.php
2026-01-09 14:49:00 -06:00

47 lines
1.1 KiB
PHP

<?php
namespace App\Http\Middleware;
use App\Models\Arco;
use Closure;
use Illuminate\Http\Request;
use Notsoweb\ApiResponse\Enums\ApiResponse;
use Symfony\Component\HttpFoundation\Response;
class ArcoTokenMiddleware
{
/**
* Handle an incoming request.
*/
public function handle(Request $request, Closure $next): Response
{
$tokenPlano = $request->bearerToken();
if (!$tokenPlano) {
return ApiResponse::UNAUTHORIZED->response([
'message' => 'Token de arco no proporcionado'
]);
}
// Buscar arco por token plano
$arco = Arco::buscarPorToken($tokenPlano);
if (!$arco) {
return ApiResponse::UNAUTHORIZED->response([
'message' => 'Token de arco inválido'
]);
}
if (!$arco->activo) {
return ApiResponse::FORBIDDEN->response([
'message' => 'Arco desactivado'
]);
}
// Agregar el arco al request para uso posterior
$request->merge(['arco_autenticado' => $arco]);
return $next($request);
}
}