Saltar al contenido principal

Usa la IA para integrar Auth0

Si usas un asistente de programación con IA como Claude Code, Cursor o GitHub Copilot, puedes añadir la autenticación de Auth0 automáticamente en cuestión de minutos mediante agent skills.Instala:
npx skills add auth0/agent-skills --skill auth0-quickstart --skill auth0-laravel
Luego, pídele a tu asistente de IA:
Add Auth0 authentication to my Laravel app
Tu asistente de IA creará automáticamente tu aplicación de Auth0, recuperará las credenciales, instalará auth0/login, configurará las variables de entorno y registrará las rutas de autenticación. Documentación completa de agent skills →
Requisitos previos: Antes de comenzar, asegúrate de tener instalado lo siguiente:Verifica la instalación: php --version && composer --version

Primeros pasos

Esta guía de inicio rápido muestra cómo añadir la autenticación de Auth0 a una aplicación de Laravel. Configurarás el inicio de sesión, el cierre de sesión, las rutas protegidas y el acceso al perfil del usuario de forma segura mediante el Auth0 Laravel SDK.
1

Crear un nuevo proyecto de Laravel

Si ya tiene una aplicación Laravel, vaya al paso 2.Cree un nuevo proyecto de Laravel:
composer create-project laravel/laravel auth0-laravel-app
Abra el directorio del proyecto:
cd auth0-laravel-app
2

Instala el SDK de Auth0 para Laravel

Ejecute el siguiente comando en el directorio de su proyecto para instalar el Auth0 Laravel SDK:
composer require auth0/login:^7 --update-with-all-dependencies
Luego, publique el archivo de configuración del SDK:
php artisan vendor:publish --tag auth0
3

Configurar las credenciales de Auth0

Debe crear una aplicación en Auth0 y agregar sus credenciales al proyecto. Elija uno de los siguientes métodos:
Cree una aplicación de Auth0 y copie las credenciales preconfiguradas de .env con los valores correctos.Agregue estos valores al archivo .env de su proyecto:
4

Añadir rutas de autenticación

El SDK de Auth0 registra automáticamente las siguientes rutas para tu aplicación; no se requiere ninguna configuración de rutas adicional:
RutaPropósito
/loginInicia el flujo de inicio de sesión de Auth0
/logoutCierra la sesión del usuario y redirige a Auth0
/callbackProcesa el callback de autenticación de Auth0
Si tu aplicación usa Laravel Breeze, Fortify o Jetstream, las rutas /login, /logout y /callback del SDK pueden entrar en conflicto con las rutas registradas por esos paquetes. Consulta el SDK README para obtener instrucciones sobre el registro manual de rutas.
Actualiza routes/web.php para agregar tu ruta de inicio:
routes/web.php
<?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    if (! auth()->check()) {
        return response('You are not logged in. <a href="/login">Log in</a>');
    }

    $user = auth()->user();
    $name = $user->name ?? 'User';
    $email = $user->email ?? '';

    return response("Hello {$name}! Your email address is {$email}.");
});
5

Protege rutas con middleware

Usa el middleware auth de Laravel para exigir autenticación en cualquier ruta. También puedes exigir permisos específicos mediante el middleware can:
routes/web.php
<?php

use Illuminate\Support\Facades\Route;

// Requiere cualquier usuario autenticado
Route::get('/private', function () {
    return response('Welcome! You are logged in.');
})->middleware('auth');

// Requiere autenticación Y el permiso 'read:messages'
Route::get('/scope', function () {
    return response('You have the read:messages permission.');
})->middleware('auth')->can('read:messages');
Los permisos se definen en la configuración de tu API de Auth0 y se asignan a los usuarios a través de roles. Consulta Role-Based Access Control para obtener más información.
6

Ejecuta la aplicación

php artisan serve
Tu aplicación se ejecuta en http://localhost:8000. Si el puerto 8000 ya está en uso, ejecuta php artisan serve --port=8001 y actualiza los valores de Allowed Callback URLs y Allowed Logout URLs de tu aplicación de Auth0 para que usen el nuevo puerto.
ComprobaciónAbre http://localhost:8000 en tu navegador. Prueba estas rutas para verificar tu integración:

Solución de problemas

Causa: La URL de callback enviada a Auth0 no coincide con ninguna URL de la lista Allowed Callback URLs de tu aplicación.Solución:
  1. Ve al Auth0 DashboardApplications > Applications → tu aplicación → Settings
  2. Agrega http://localhost:8000/callback a Allowed Callback URLs
  3. Haz clic en Save Changes
Asegúrate de que no haya barras diagonales al final y de que el puerto coincida con el de tu servidor.
Causa: Hay un problema de configuración de la sesión o de las cookies: la sesión de Laravel no mantiene el estado entre la redirección de inicio de sesión y el callback.Solución:
  1. Asegúrate de que SESSION_DRIVER en .env esté configurado como file, database o redis (no array)
  2. Borra la configuración y la caché:
php artisan config:clear && php artisan cache:clear
  1. Reinicia tu servidor de desarrollo
Causa: El SDK no puede encontrar tus credenciales de Auth0.Solución: Asegúrate de que exista uno de los siguientes elementos en la raíz de tu proyecto:
  • Un archivo .env con AUTH0_DOMAIN, AUTH0_CLIENT_ID y AUTH0_CLIENT_SECRET
  • Un archivo .auth0.app.json generado por Auth0 CLI
Después de actualizar .env, borra la caché de configuración:
php artisan config:clear
Causa: Las rutas del SDK no están registradas, normalmente porque el proveedor de servicios no se cargó.Solución:
  1. Confirma que ejecutaste php artisan vendor:publish --tag auth0
  2. Verifica que la autodetección del paquete esté habilitada (revisa composer.json para "dont-discover": [])
  3. Ejecuta php artisan route:list | grep auth0 para confirmar que las rutas estén registradas
  4. Si faltan rutas, registra manualmente el proveedor de servicios. En Laravel 11+, agrégalo a bootstrap/providers.php:
bootstrap/providers.php
return [
    App\Providers\AppServiceProvider::class,
    Auth0\Laravel\Auth0ServiceProvider::class,
];

Uso avanzado

Puede actualizar la información del usuario mediante la Management API. Todos los endpoints de la Management API están disponibles a través del método Auth0::management() del SDK.Antes de hacer llamadas a la Management API, autorice a su aplicación para acceder a la Management API:
  1. Vaya al Auth0 DashboardApplications > APIsManagement API
  2. Seleccione la pestaña Machine to Machine Applications
  3. Autorice su aplicación de Laravel y conceda los alcances read:users y update:users
routes/web.php
<?php

use Auth0\Laravel\Facade\Auth0;
use Illuminate\Support\Facades\Route;

Route::get('/colors', function () {
    $colors = ['red', 'blue', 'green', 'black', 'white', 'yellow', 'purple', 'orange'];

    $users = Auth0::management()->users();

    // Actualiza los metadatos del usuario autenticado con un color favorito aleatorio
    $users->update(
        id: auth()->id(),
        body: [
            'user_metadata' => [
                'color' => $colors[random_int(0, count($colors) - 1)],
            ],
        ]
    );

    // Recupera y muestra los metadatos actualizados
    $metadata = Auth0::json($users->get(auth()->id()));
    $color = $metadata['user_metadata']['color'] ?? 'unknown';
    $name = auth()->user()->name;

    return response("Hello {$name}! Your favorite color is {$color}.");
})->middleware('auth');
Puede consultar una referencia completa de todos los métodos de la Management API en la documentación del SDK.
El SDK admite modelos y repositorios de usuario personalizados, lo que le permite almacenar y recuperar usuarios desde su propia base de datos mientras mantiene Auth0 como proveedor de identidad.Consulte User Repositories and Models para obtener la guía de implementación completa.
El SDK genera eventos en puntos clave del ciclo de vida de la autenticación —como al iniciar sesión, cerrar sesión, renovar tokens y más—, lo que le permite personalizar por completo el comportamiento sin modificar el código base del SDK.Consulte Hooking Events para ver la lista completa de eventos y ejemplos de implementación.
Use Auth0 RBAC para asignar permisos a los usuarios mediante roles y luego aplicarlos en Laravel con el middleware can:
routes/web.php
<?php

use Illuminate\Support\Facades\Route;

Route::get('/admin', function () {
    return response('Admin area.');
})->middleware('auth')->can('admin:dashboard');
Para configurar RBAC:
  1. Vaya al Auth0 DashboardApplications > APIs → su API → Permissions
  2. Añada los permisos que necesita su aplicación (por ejemplo, admin:dashboard, read:messages)
  3. Vaya a User Management > Roles, cree un rol y asígnele permisos
  4. Asigne el rol a los usuarios desde su página de perfil
Consulte Role-Based Access Control para obtener la guía completa.

Próximos pasos

Ahora que ya tienes la autenticación funcionando en tu aplicación Laravel, explora más funcionalidades de Auth0: