15-Resolver Nombre de Dominio para Laravel Sanctum
Introducción
Cuando trabajamos con aplicaciones que usan Laravel Sanctum para autenticación, es necesario que tanto el frontend como el backend corran en el mismo dominio. Esto se debe a que Sanctum utiliza cookies que requieren el mismo origen para evitar problemas de CORS.
El Problema
Nuestra aplicación de backend corre en una dirección IP específica (ej:
http://192.168.1.100:8000)Nuestro frontend corre en
localhostLaravel Sanctum requiere que ambos estén en el mismo dominio
Solución: Configurar Resolución de DNS Local
Para Usuarios de Windows:
Paso 1: Acceder al Archivo Hosts
Abre el Explorador de Archivos y navega a:
C:\Windows\System32\drivers\etcEn esta carpeta encontrarás el archivo
hosts(sin extensión).
Paso 2: Copiar y Editar el Archivo
Como el archivo tiene permisos de administrador:
Cópialo a otra ubicación (ej: el Escritorio)
Ábrelo con Bloc de Notas (clic derecho → "Abrir con")
Añade las siguientes líneas al final del archivo:
# Resolución para Laravel Sanctum
192.168.1.100 eivideo.local
127.0.0.1 app.eivideo.localExplicación:
La primera línea traduce tu IP del backend a un dominio (
eivideo.local)La segunda línea asigna
localhosta un subdominio del mismo dominio principal
Paso 3: Reemplazar el Archivo Original
Copia el archivo modificado
Vuelve a
C:\Windows\System32\drivers\etcPega y reemplaza el archivo original (necesitarás permisos de administrador)
Paso 4: Verificar
Abre el archivo hosts nuevamente para confirmar los cambios
Ahora puedes acceder a:
Backend:
http://eivideo.local:8000Frontend:
http://app.eivideo.local:3000(o el puerto que uses)
Configuración Adicional Importante
IP Estática (Recomendado)
Si usas una máquina virtual o equipo con DHCP:
Configura una IP estática en tu máquina
DHCP puede asignar IPs diferentes al reiniciar
Si la IP cambia, deberás modificar el archivo hosts nuevamente
Configuración en Laravel
En tu archivo .env de Laravel, asegúrate de configurar:
SESSION_DOMAIN=.eivideo.local
SANCTUM_STATEFUL_DOMAINS=app.eivideo.localPara Usuarios de Mac/Linux
El proceso es similar pero con diferentes rutas:
Mac:
Archivo hosts:
/private/etc/hostsEdita con:
sudo nano /private/etc/hosts
Linux:
Archivo hosts:
/etc/hostsEdita con:
sudo nano /etc/hosts
Prueba de Funcionamiento
Accede a
http://eivideo.local:8000(deberías ver tu aplicación Laravel)Accede a
http://app.eivideo.local(deberías ver tu frontend)Verifica que las cookies se compartan correctamente entre ambos
Conclusión
Al configurar la resolución DNS local:
✅ Frontend y backend comparten el mismo dominio raíz
✅ Laravel Sanctum puede usar cookies sin problemas de CORS
✅ Desarrollo local más eficiente y similar a entorno de producción
Nota: Estos cambios solo afectan tu máquina local. No interfieren con la configuración de DNS de internet.
¡Listo! Ahora tu configuración de Laravel Sanctum funcionará correctamente en desarrollo local.
Comentarios
Publicar un comentario