Page 128 - 0149-curso-laravel-5_Neat
P. 128
Laravel 5
Laravel no incluye un Middleware por defecto para la autenticación sin estado pero lo
podemos crear rápidamente. En primer lugar ejecutamos el comando de Artisan para crear
un nuevo middleware:
php artisan make:middleware AuthenticateOnceWithBasicAuth
A continuación editamos la nueva clase creada para que tenga el siguiente contenido:
<?php
namespace App\Http\Middleware;
use Illuminate\Support\Facades\Auth;
use Closure;
class AuthenticateOnceWithBasicAuth
{
public function handle($request, Closure $next)
{
return Auth::onceBasic() ?: $next($request);
}
}
Básicamente lo que tenemos que añadir es el espacio de nombres use
Illuminate\Support\Facades\Auth; y la línea que realiza la validación dentro de la función
handle . El método onceBasic lanza la autenticación y en caso de que sea correcta
permitirá continuar con la petición, y en otro caso devolverá un error de autenticación.
Por último nos faltaría registrar el middleware para poder utilizarlo. Para esto abrimos el
fichero app/Http/Kernel.php y añadimos la siguiente línea al array de routeMiddleware :
'auth.basic.once' => \App\Http\Middleware\AuthenticateOnceWithBasicAuth::class,
Como se puede ver le hemos asignado el alias auth.basic.once , así que ya podemos
usarlo para añadir la autenticación HTTP básica sin estado a nuestras rutas:
Route::get('api/user', function () {
// Zona de acceso restringido
})->middleware('auth.basic.once');
Pruebas con cURL
Si intentamos acceder a una ruta protegida mediante autenticación básica utilizando los
comando de cURL que hemos visto obtendremos el siguiente error:
Autenticación HTTP básica 128

