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 localhost

  • Laravel 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

  1. Abre el Explorador de Archivos y navega a:

    text
    C:\Windows\System32\drivers\etc
  2. En esta carpeta encontrarás el archivo hosts (sin extensión).

Paso 2: Copiar y Editar el Archivo

Como el archivo tiene permisos de administrador:

  1. Cópialo a otra ubicación (ej: el Escritorio)

  2. Ábrelo con Bloc de Notas (clic derecho → "Abrir con")

  3. Añade las siguientes líneas al final del archivo:

text
# Resolución para Laravel Sanctum
192.168.1.100    eivideo.local
127.0.0.1        app.eivideo.local

Explicación:

  • La primera línea traduce tu IP del backend a un dominio (eivideo.local)

  • La segunda línea asigna localhost a un subdominio del mismo dominio principal

Paso 3: Reemplazar el Archivo Original

  1. Copia el archivo modificado

  2. Vuelve a C:\Windows\System32\drivers\etc

  3. Pega y reemplaza el archivo original (necesitarás permisos de administrador)

Paso 4: Verificar

  1. Abre el archivo hosts nuevamente para confirmar los cambios

  2. Ahora puedes acceder a:

    • Backend: http://eivideo.local:8000

    • Frontend: 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:

env
SESSION_DOMAIN=.eivideo.local
SANCTUM_STATEFUL_DOMAINS=app.eivideo.local

Para Usuarios de Mac/Linux

El proceso es similar pero con diferentes rutas:

Mac:

  • Archivo hosts: /private/etc/hosts

  • Edita con: sudo nano /private/etc/hosts

Linux:

  • Archivo hosts: /etc/hosts

  • Edita con: sudo nano /etc/hosts

Prueba de Funcionamiento

  1. Accede a http://eivideo.local:8000 (deberías ver tu aplicación Laravel)

  2. Accede a http://app.eivideo.local (deberías ver tu frontend)

  3. 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

Entradas más populares de este blog

ejercicios-Crear Carpeta y Archivo de Texto en Ubuntu

Tutorial de Carpetas y Directorios en Ubuntu Linux

Instalar Docker en Ubuntu Server usando docker.io