Protección de APIs con Autenticación Token en Laravel
Clase 36 de 37 • Curso de Introducción a Laravel 6
Resumen
¿Cómo configurar protección en una API con invitados?
¡Bienvenido! En este contenido, exploramos las configuraciones necesarias para proteger una API frente a usuarios no autenticados, con foco en el uso de la autenticación mediante token. La clave está en saber qué hacer cuando recibes a un usuario invitado.
¿Por qué es esencial tener métodos de test adicionales?
- Desarrollo controlado: Nuestro controlador tiene cinco métodos, pero a nivel de pruebas sumamos uno adicional para validación.
- Mejora continua: Nos permite crear nuevos casos para situaciones específicas, como el acceso de invitados.
- Evaluar protección: Podemos verificar cómo responde nuestro sistema cuando llegan usuarios no autenticados.
¿Cómo se configuran los métodos de prueba?
- Definir el comportamiento esperado: Queremos probar las rutas que reciben invitados.
- Configurar el estado esperado: El estatus debería ser
401 - Unauthorized
al intentar acceder sin autenticación.
public function testGuestAccess()
{
$this->get('/happy')->assertStatus(401);
}
¿Qué sucede al recibir un código de estado incorrecto?
- Diagnóstico rápido: Si esperas un
401
y recibes un200
, probablemente la API esté pública. - Acción necesaria: Asegúrate de proteger las rutas mediante middleware.
¿Cómo asegurar una API con middleware?
- Configura el middleware: Utiliza
auth:api
como middleware enroutes/api.php
para proteger las rutas. - Token Authentication: Ideal para APIs, asegurando que solo usuarios autenticados puedan acceder.
Route::middleware('auth:api')->get('/happy', function (Request $request) {
//
});
¿Cómo se integra todo esto en las pruebas?
- Crear usuarios: Usa factories para simular usuarios.
- Prueba como usuario autenticado: Usa
actingAs
con el token.
$user = User::factory()->create();
$this->actingAs($user, 'api')->get('/happy')->assertStatus(200);
¿Qué sucede al realizar múltiples pruebas?
- Multiplicidad: Duplica la configuración para probar todas las rutas (
POST
,PUT
,DELETE
). - Validación completa: Asegura que cada ruta muestra el comportamiento esperado.
Ejemplo de verificación de PUT
$user = User::factory()->create();
$this->actingAs($user, 'api')->put('/mil')->assertStatus(200);
¿Qué esperar tras la implementación?
- Feedback inmediato: Al ejecutar las pruebas, deberías ver que el sistema responde adecuadamente bajo autenticación, mientras bloquea los acceso no autorizados.
- Seguridad garantizada: Asegúrate de que cada método sólo sea accesible mediante token para proteger tu API.
Siempre que desarrolles o ajustes una API, practicar y evaluar los resultados es crucial. Compártenos tus experiencias o dudas. En tu camino hacia la maestría en tecnología, cada paso cuenta. ¡Ánimo y sigue adelante!