Skip to main content

馃幆 Troubleshooting

Esta secci贸n tiene como objetivo ayudar a identificar y resolver los errores m谩s comunes que pueden presentarse durante la integraci贸n de **FusionAuth** con proyectos Laravel mediante el m贸dulo de autenticaci贸n y Socialite Provider.

Antes de revisar errores espec铆ficos, se recomienda validar que se hayan completado correctamente los siguientes puntos:

  1. Instalaci贸n de dependencias mediante Composer.
  2. Configuraci贸n de config/services.php.
  3. Configuraci贸n de variables de entorno en .env.
  4. Registro del provider de Socialite.
  5. Configuraci贸n del modelo User.
  6. Modificaci贸n de la tabla users.
  7. Coincidencia exacta de la URI de callback entre Laravel y FusionAuth.

No redirige al login de FusionAuth

Problema

Al ingresar a la ruta: http://${base_url}/autenticacion/login

la aplicaci贸n no redirige al formulario de inicio de sesi贸n de FusionAuth, muestra una pantalla en blanco, error 404 o permanece en la misma p谩gina.

Posibles causas
  • El m贸dulo de autenticaci贸n no est谩 instalado correctamente.
  • Las rutas del m贸dulo no fueron registradas.
  • El proyecto no reconoce el m贸dulo de autenticaci贸n.
  • La URL base del proyecto no corresponde con la URL utilizada en el navegador.
  • El cach茅 de rutas o configuraci贸n de Laravel est谩 desactualizado.

Soluci贸n recomendada

Ejecutar los siguientes comandos dentro del proyecto Laravel:

php artisan optimize:clear
php artisan route:clear
php artisan config:clear
php artisan cache:clear
composer dump-autoload

Despu茅s, validar que la ruta exista ejecutando:

php artisan route:list | grep autenticacion

Se debe verificar que existan rutas relacionadas con:

/autenticacion/login
/autenticacion/callback

Si las rutas no aparecen, revisar que el m贸dulo de autenticaci贸n se encuentre instalado correctamente dentro de la estructura de m贸dulos del proyecto.


Error por URI de callback incorrecta

Problema

FusionAuth muestra un error relacionado con la URL de redirecci贸n o callback.

Puede presentarse como:

Invalid redirect_uri

o

The redirect_uri is not valid
Posibles causas
  • La variable FUSIONAUTH_REDIRECT_URI no coincide exactamente con la configurada en FusionAuth.
  • Se est谩 usando http en lugar de https, o viceversa.
  • La aplicaci贸n tiene un prefijo en la URL y no fue considerado.
  • La variable APP_URL est谩 mal configurada.
  • Hay una diagonal / extra o faltante en la URL.
Soluci贸n recomendada

Validar en el archivo .env:

APP_URL=https://dominio-del-proyecto.gob.mx
FUSIONAUTH_REDIRECT_URI=${APP_URL}/autenticacion/callback

La URI generada debe coincidir exactamente con la configurada en FusionAuth.

Ejemplo:

https://dominio-del-proyecto.gob.mx/autenticacion/callback

Tambi茅n se recomienda limpiar cach茅 de configuraci贸n:

php artisan config:clear
php artisan optimize:clear

Importante: la URI de callback debe coincidir exactamente. Para FusionAuth, http://sistema.gob.mx/callback y https://sistema.gob.mx/callback son rutas diferentes.


Error 500 despu茅s del callback


Problema

El usuario inicia sesi贸n en FusionAuth, pero al regresar a Laravel se muestra un error 500.

Posibles causas
  • Faltan columnas en la tabla users.
  • El modelo User no tiene los campos agregados en $fillable.
  • Los campos data o registration_data no tienen casting como array.
  • La base de datos no acepta valores nulos en campos requeridos.
  • El campo password no permite valores nulos.
  • Error al guardar los tokens de FusionAuth.
  • Soluci贸n recomendada

Validar que la tabla users tenga los siguientes campos:

fusionauth_id
fusionauth_access_token
fusionauth_refresh_token
profile_photo_url
data
registration_data

Validar que el campo password permita valores nulos:

DESCRIBE users;

En el modelo User, revisar que existan los campos en $fillable:

protected $fillable = [
    'name',
    'email',
    'profile_photo_url',
    'password',
    'fusionauth_id',
    'fusionauth_access_token',
    'fusionauth_refresh_token',
    'data',
    'registration_data',
];

Tambi茅n revisar que los campos JSON tengan casting:

protected $casts = [
    'data' => 'array',
    'registration_data' => 'array',
];

Finalmente, revisar el log de Laravel:

tail -f storage/logs/laravel.log

Error: Class not found

Problema

Laravel muestra un error similar a:

Class "SocialiteProviders\FusionAuth\FusionAuthExtendSocialite" not found

o

Class not found

Posibles causas
  • No se instal贸 correctamente el paquete del provider de FusionAuth.
  • Composer no actualiz贸 el autoload.
  • El provider fue registrado con un namespace incorrecto.
  • El archivo EventServiceProvider.php tiene una referencia mal escrita.
Soluci贸n recomendada

Validar que las dependencias est茅n instaladas:

composer show | grep fusionauth
composer show | grep socialite

Regenerar el autoload:

composer dump-autoload
php artisan optimize:clear

Revisar que en app/Providers/EventServiceProvider.php exista la siguiente configuraci贸n:

protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        \SocialiteProviders\FusionAuth\FusionAuthExtendSocialite::class . '@handle',
    ],
];

Error de configuraci贸n de services.php

Problema

La aplicaci贸n no puede iniciar el flujo de autenticaci贸n o genera errores relacionados con configuraciones vac铆as.

Posibles causas
  • No existe la entrada fusionauth en config/services.php.
  • Alguna variable del .env est谩 vac铆a.
  • Se modific贸 el nombre de una variable.
  • El cach茅 de configuraci贸n de Laravel sigue usando valores anteriores.
Soluci贸n recomendada

Validar que config/services.php tenga la siguiente estructura:

'fusionauth' => [
    'client_id' => env('FUSIONAUTH_CLIENT_ID'),
    'client_secret' => env('FUSIONAUTH_CLIENT_SECRET'),
    'redirect' => env('FUSIONAUTH_REDIRECT_URI'),
    'base_url' => env('FUSIONAUTH_BASE_URL'),
    'tenant_id' => env('FUSIONAUTH_TENANT_ID'),
    'redirect_home' => env('FUSIONAUTH_REDIRECT_HOME'),
    'url_logout' => env('FUSIONAUTH_URL_LOGOUT'),
],

Despu茅s, revisar las variables en .env:

FUSIONAUTH_CLIENT_ID=tu_client_id
FUSIONAUTH_CLIENT_SECRET=tu_client_secret
FUSIONAUTH_REDIRECT_URI=${APP_URL}/autenticacion/callback
FUSIONAUTH_BASE_URL=https://acceso.tamaulipas.gob.mx
FUSIONAUTH_TENANT_ID=d9220956-99f7-431f-8de1-de37e65488a8
FUSIONAUTH_REDIRECT_HOME="/inicio"
FUSIONAUTH_URL_LOGOUT="${FUSIONAUTH_BASE_URL}/oauth2/logout?client_id=${FUSIONAUTH_CLIENT_ID}"

Limpiar configuraci贸n:

php artisan config:clear
php artisan optimize:clear

Error: Client ID o Client Secret incorrecto

Problema

FusionAuth no permite completar el inicio de sesi贸n o marca error relacionado con la aplicaci贸n cliente.

Posibles causas
  • FUSIONAUTH_CLIENT_ID incorrecto.
  • FUSIONAUTH_CLIENT_SECRET incorrecto.
  • Las credenciales corresponden a otra aplicaci贸n.
  • El usuario intenta autenticarse contra un tenant o aplicaci贸n distinta.
Soluci贸n recomendada

Validar que los valores del .env correspondan exactamente a los configurados en FusionAuth:

FUSIONAUTH_CLIENT_ID=tu_client_id
FUSIONAUTH_CLIENT_SECRET=tu_client_secret

Tambi茅n confirmar que el usuario tenga acceso a la aplicaci贸n configurada en FusionAuth.

Despu茅s de modificar estas variables, ejecutar:

php artisan config:clear
php artisan optimize:clear

Error al guardar el usuario autenticado

Problema

El login se completa en FusionAuth, pero Laravel no puede crear o actualizar el usuario en la base de datos.

Posibles causas
  • Falta el campo fusionauth_id.
  • fusionauth_id est谩 marcado como 煤nico y ya existe un usuario duplicado.
  • El correo ya existe con otro fusionauth_id.
  • Faltan campos en $fillable.
  • Las columnas JSON no existen o no son compatibles con la base de datos.
  • Los tokens son demasiado largos para el tipo de columna definido.
Soluci贸n recomendada

Validar la estructura de la tabla:

DESCRIBE users;

Confirmar que los tokens est茅n definidos como TEXT:

fusionauth_access_token TEXT
fusionauth_refresh_token TEXT

Validar si ya existe el usuario:

SELECT id, name, email, fusionauth_id
FROM users
WHERE email = 'correo@dominio.gob.mx'
   OR fusionauth_id = 'id-de-fusionauth';

Si existe un conflicto de datos, revisar si corresponde actualizar el registro existente o depurar el registro duplicado.


Recomendaci贸n final

Si despu茅s de aplicar las soluciones anteriores el problema contin煤a, se recomienda recopilar la siguiente informaci贸n antes de solicitar soporte:

  • URL del sistema donde se presenta el error.
  • Captura de pantalla del error.
  • Fragmento relevante del archivo storage/logs/laravel.log.
  • Valor configurado en APP_URL.
  • Valor configurado en FUSIONAUTH_REDIRECT_URI.
  • Confirmaci贸n de que la URI de callback coincide con FusionAuth.
  • Resultado de php artisan route:list | grep autenticacion.
  • Confirmaci贸n de que la tabla users contiene los campos requeridos.

Con esta informaci贸n ser谩 m谩s sencillo identificar el origen del problema y aplicar una soluci贸n puntual.