diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 2f3382b..73ee242 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -4,19 +4,43 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Firebase\JWT\JWT; -use Firebase\JWT\Key; +use App\Constants\HttpStatus; + +/** + * Controlador de autenticación para generar y gestionar tokens JWT. + * + * Este controlador maneja las peticiones de autenticación, verificando una + * clave secreta proporcionada y generando un token JWT con un tiempo de + * expiración. El token puede ser utilizado para autorizar solicitudes futuras. + * + * Métodos disponibles: + * - login: Valida la clave secreta y genera un token JWT. + * + * @package App\Http\Controllers + */ class AuthController extends Controller { + /** + * Método para autenticar la petición y generar un token JWT. + * + * Este método valida si se ha proporcionado la clave secreta, verifica su + * validez comparándola con la configurada en el archivo .env y genera un + * token JWT con un tiempo de expiración de 15 minutos. Devuelve el token + * y la información de expiración en formato JSON. + * + * @param Request $request La solicitud HTTP que contiene la clave secreta. + * @return \Illuminate\Http\JsonResponse Respuesta JSON con el token JWT o mensajes de error. + */ public function login(Request $request) { - $request->validate([ - 'clave_secreta' => 'required', - ]); + if(!$request->has('clave_secreta')){ + return response()->json(['message' => trans('api.SIN_CLAVE')], HttpStatus::BAD_REQUEST); + } // Verificar la clave secreta if ($request->clave_secreta !== config('app.clave')) { - return response()->json(['message' => 'Credenciales inválidas'], 401); + return response()->json(['message' => trans('api.CLAVE_INCORRECTA')], HttpStatus::UNAUTHORIZED); } $expirationTime = time() + (15 * 60); // 15 minuto @@ -34,8 +58,8 @@ class AuthController extends Controller return response()->json([ 'token' => $jwt, - 'expires_in' => $expirationTime - time(), // Tiempo en segundos hasta la expiración - 'expiration_time' => date('Y-m-d H:i:s', $expirationTime) // Fecha y hora de expiración + 'expiracion_segundos' => $expirationTime - time(), // Tiempo en segundos hasta la expiración + 'tiempo_expiracion' => date('Y-m-d H:i:s', $expirationTime) // Fecha y hora de expiración ]); } }