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
   123   124   125   126   127   128   129   130   131   132   133