No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Autorización: tokens y middlewares

15/30
Recursos

¿Qué es la autorización y por qué es importante?

La autorización es clave en cualquier sistema que maneje información sensible. Se trata de verificar la identidad de un usuario para determinar su acceso y el control sobre ciertos recursos o funciones. En términos simples, es el proceso que decide si tienes permiso para realizar ciertas acciones dentro de un sistema. En esta clase, se implementará un sistema de autorización usando Laravel, una herramienta muy popular en el desarrollo web.

¿Cómo gestionar la autenticación en Laravel?

Laravel ofrece herramientas robustas para manejar la autenticación y autorización mediante el uso de tokens. A continuación, se describen los pasos esenciales para implementarlo:

  1. Instalación de componentes: Usa Composer para instalar los componentes necesarios de Laravel. Por ejemplo:

    composer require laravel/sanctum
    
  2. Protección de rutas: Para restringir el acceso a ciertas rutas, agrúpalas y agrega la verificación de tokens:

    Route::middleware('auth:sanctum')->group(function () {
        // Rutas protegidas
    });
    
  3. Generación de tokens: Para interactuar con la base de datos y generar tokens, utiliza una herramienta como Laravel Tinker:

    php artisan tinker
    

    Dentro de Tinker, permite crear tokens usando el siguiente código:

    $user = App\Models\User::find(5);
    $token = $user->createToken('device_name')->plainTextToken;
    

¿Cómo interactuar con la API usando Postman?

Postman es una herramienta excelente para probar APIs. Aquí se explica cómo usarla para probar la autenticación con tokens generados:

  1. Configuración de la autorización: Copia el token generado y péngalo en la sección de autorización de Postman.
  2. Enviar una solicitud: Configura una solicitud GET para acceder a las rutas protegidas.
  3. Verificación de acceso: Asegúrate de recibir una respuesta exitosa si el token es válido.

¿Qué son los tokens múltiples y cómo gestionarlos?

Los tokens permiten al usuario autenticarse desde diferentes dispositivos. Un mismo usuario puede tener varios tokens activos al mismo tiempo, cada uno identificado con un nombre de dispositivo como "Android" o "Web App". Esto es cómo se gestionan:

  • Generación múltiple: Puedes generar múltiples tokens desde diferentes dispositivos:

    $token1 = $user->createToken('Android')->plainTextToken;
    $token2 = $user->createToken('Web App')->plainTextToken;
    
  • Eliminación de tokens: Si necesitas revocar el acceso, puedes eliminar un token específico desde la base de datos o a través de comandos en Laravel:

    $user->tokens->each->delete();
    

El manejo correcto de tokens es crucial para mantener la seguridad y la integridad de tu aplicación. Este conocimiento te prepara para crear sistemas más seguros y efectivos.

¿Cómo asegurar la identidad del usuario?

La autenticación no solo se trata de limitar el acceso, sino de autenticar adecuadamente al usuario. Este enfoque, a menudo implementado en el middleware, cierra el ciclo de seguridad, asegurando que solo usuarios legítimos y autorizados puedan acceder a funciones específicas del sistema.

Así, la implementación de autenticación y autorización a través de Laravel no solo fortalece la seguridad, sino que también garantiza un manejo de datos eficiente y confiable. Sigue investigando y profundizando en estos temas para dominar la creación de aplicaciones seguras.

Aportes 3

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Sí les da un error `createToken not found`, prueben lo siguiente: En el archivo `Modeles/User.php` verificar al principio del archivo que se usan `HasApitokens` ```js use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable; .... } ``` Y prueben a crear ahora el token.
recuerden hacer esto para que reconozca a sanctum en las rutas `php artisan route:cache && php artisan cache:clear` tinker: `$user = App\Models\User::find(5);` `$user->createToken('app');`

buenisimo, grande como siempre