El proceso de autorización en Laravel es bastante simple y sencillo. En este blog, hablaremos sobre las puertas y políticas de autorización de LARAVEL. Después de presentar términos como autorización, autenticación, puertas y políticas, implementaremos los conceptos con un ejemplo. Pero antes de eso, comprendamos los términos que usaremos en este blog de autenticación LARAVEL. ¿Qué es la autenticación Laravel? La autenticación de Laravel se utiliza para identificar las credenciales del usuario y se administra mediante sesiones que toman entradas como correo electrónico o nombre de usuario y contraseña para la identificación del usuario. ¿Cómo autorizar? En Laravel, tienes dos formas de autorizar a un usuario. Estos son: Enfoque basado en cierre Enfoque basado en clases El enfoque de autorización basado en cierres se llama Puertas, y el enfoque basado en clases se llama política. En este documento, le indicaremos que autorice el uso tanto de puertas como de rutas cerradas. ¿Cuál es la diferencia entre autorización y autenticación? Como sugiere el nombre, la autenticación confirma la identidad de los usuarios o garantiza que sean lo que dicen ser. Es decir, un usuario sólo puede trabajar en aquellos módulos y acciones que se le han permitido. Tanto la autenticación como la autorización son procesos de seguridad distintos en el mundo de la gestión de identidad y acceso (IAM) en Laravel 8. Sin embargo, la autorización permite que los usuarios adecuados accedan a los recursos. Hablaremos de esto en detalle en una parte posterior del documento. Puertas frente a políticas en Laravel: Las puertas y políticas de Laravel son como rutas y controladores, respectivamente. Gates permite a los usuarios definir una autorización utilizando un enfoque simple basado en cierre. Si desea una acción que no esté relacionada con ningún modelo específico, las puertas son perfectas para usar. Gates debe tener una instancia de usuario como primer argumento y, opcionalmente, puede tener argumentos adicionales como modelo Eloquent relevante. Ahora ya sabes cómo usar puertas para autorizar acciones en tu aplicación Laravel. La siguiente sección trata sobre la actualización de un artículo: registrarPolicías(); Gate::define(‘actualizar-artículo’, función (Usuario $usuario, Artículo $artículo) { return $usuario->id === $artículo->user_id; }); } Las puertas se definen en el método de arranque de la clase App\Providers\AuthServiceProvider y utiliza la fachada de puerta. Entendamos esto con un ejemplo, donde un usuario puede actualizar un artículo Model App\Models\Article; la puerta hará esto comparando la identificación del usuario con la ID de usuario que creó el artículo. Por favor vea el siguiente ejemplo: registrarPolicías(); Gate::define(‘actualizar-artículo’, función (Usuario $usuario, Artículo $artículo) { return $usuario->id === $artículo->user_id; }); } Cómo autorizar acciones en Laravel 8: Podemos autorizar acciones usando puertas en Laravel 8. Puede usar métodos «permite» o «niega» perfilados por la fachada de la puerta. No necesitamos pasar el usuario actualmente autenticado a estos métodos, laravel pasará automáticamente al usuario al cierre de la puerta. Necesitamos llamar a los métodos de autorización de la puerta dentro de los controladores de la aplicación antes de realizar una acción que requiera autorización. Por favor vea el siguiente ejemplo: permite(‘update-article’, $article)) { // El usuario puede actualizar el artículo… } if (Gate::forUser($user)->denies(‘update-article’, $article)) { // El usuario no puede actualizar el artículo… } Para autorizar múltiples acciones, necesitamos pasar una serie de métodos: if (Gate::any([‘update-article’, ‘delete-article’]$artículo)) { // El usuario puede actualizar o eliminar el artículo } if (Gate::none([‘update-article’, ‘delete-article’]$artículo)) { // el usuario no puede actualizar ni eliminar el artículo } Gates generalmente proporciona resultados como valores booleanos simples, pero en algunos casos queremos tener respuestas más detalladas como mensajes de error, etc. Para eso podemos usar: Illuminate\ Auth\Access\Response desde la puerta: ¿Es administrador? Response::allow() : Response::deny(‘Debes ser administrador.’); }); Políticas Las políticas son una forma de organizar lógicamente la autorización para un modelo o recurso en particular. Entonces, si tenemos artículos en nuestro sitio web, entonces debemos tener un modelo: App\Modeils|Article y podemos tener una App\Policies\ArticlePolicy para autorizar las acciones del usuario. Para generar una política podemos usar el comando make:policy Artisan, se creará aquí app/Policies/ArticlePolicy.php: php artisan make:policy ArticlePolicy // lo anterior generará una clase de política vacía. php artisan make:policy ArticlePolicy –model=Article // lo anterior generará una clase con métodos de política de ejemplo relacionados con la visualización, creación, actualización y eliminación del recurso. Cómo registrar políticas en Laravel 8: Necesitamos registrar una política una vez creada, registrar una política es importante para informar a Laravel qué política usar al autorizar acciones contra el modelo. Podemos registrarlo usando el proveedor de servicios Laravel, vea el ejemplo a continuación: registrarPolicías(); // } } Una vez que registramos nuestras políticas, podemos escribir políticas de la siguiente manera: identificación > 0; } /** * Determinar si el usuario puede actualizar el artículo. * * @param \App\User $usuario * @param \App\Article $artículo * @return mixto */ actualización de función pública(Usuario $usuario, Artículo $artículo) { return $usuario->id == $artículo-> ID_usuario; } /** * Determinar si el usuario puede eliminar el artículo. * * @param \App\User $usuario * @param \App\Article $artículo * @return mixto */ función pública eliminar(Usuario $usuario, Artículo $artículo) { return $usuario->id == $artículo-> ID_usuario; } } El código de ejemplo anterior tenía todos los métodos para autorizar a un usuario, creemos algunas rutas personalizadas en nuestro archivo rutas/wen.php can(‘view’, $article)) { echo «El usuario que ha iniciado sesión actualmente puede actualizar el artículo: {$article->id}»; } else { echo ‘No autorizado’; } } public function create() { // obtener el usuario registrado actual $usuario = Auth::user(); if ($user->can(‘create’, Article::class)) { echo ‘El usuario que ha iniciado sesión actualmente puede crear nuevos artículos.’; } else { echo ‘No autorizado’; } salida; } public function update() { // obtener el usuario registrado actual $usuario = Auth::user(); // cargar artículo $artículo = Artículo::find(1); if ($user->can(‘update’, $article)) { echo «El usuario que ha iniciado sesión actualmente puede actualizar el artículo: {$article->id}»; } else { echo ‘No autorizado’; } } función pública eliminar() { // obtener el usuario registrado actual $usuario = Auth::user(); // cargar artículo $artículo = Artículo::find(1); if ($user->can(‘delete’, $article)) { echo «El usuario que ha iniciado sesión actualmente puede eliminar el artículo: {$article->id}»; } else { echo ‘No autorizado’; } } } Hay diferentes formas en que podemos autorizar nuestras acciones utilizando Políticas. En nuestro ejemplo anterior, hemos utilizado el modelo Usuario para autorizar nuestras acciones del modelo Artículo. Usar el modelo de usuario ofrece dos métodos útiles para la autorización «puede» y «no puede». El método can se usa para verificar si el usuario actual puede ejecutar acciones y el método cant se usa para determinar la imposibilidad de ejecutar la acción. Vea el ejemplo a continuación: can(‘view’, $article)) { echo «El usuario que ha iniciado sesión actualmente puede actualizar el artículo: {$article->id}»; } else { echo ‘No autorizado’; } } En el ejemplo anterior, tenemos el objeto del modelo de usuario y también tenemos el objeto del modelo de artículo. Hemos utilizado el método can del modelo Usuario para autorizar la acción de visualización del modelo Artículo. El primer argumento del método can es el nombre de la acción que queremos autorizar y el segundo argumento es el objeto modelo contra el que queremos obtener autorización. Esperamos que este tutorial le ayude a conocer la autorización de las puertas y políticas de Laravel. ¿Podrías comentar o compartir este tutorial? En caso de que necesite ayuda con las aplicaciones de Laravel, comuníquese con nosotros. Como empresa de desarrollo web de Laravel, podemos ayudarle a crear aplicaciones Laravel altamente intuitivas y funcionales en poco tiempo. Contáctenos ahora para más detalles. Etiquetas: puertas y políticas de autorización, puertas y políticas de Laravel 8, puertas y políticas de Laravel, puertas y políticas de Laravel para autorización, empresa de desarrollo web laravel

Source link