馃幆 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:
- Instalaci贸n de dependencias mediante Composer.
- Configuraci贸n de
config/services.php. - Configuraci贸n de variables de entorno en
.env. - Registro del provider de Socialite.
- Configuraci贸n del modelo
User. - Modificaci贸n de la tabla
users. - 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.