Local D2 Troubleshooting
Troubleshooting local D2
Section titled “Troubleshooting local D2”Usa esta pagina cuando algo no cuadra despues de levantar backend y frontend local.
Primer diagnostico
Section titled “Primer diagnostico”Si ves Authorization en Network, la causa mas probable es una de estas:
- Arrancaste legacy manualmente.
- Una terminal vieja sigue corriendo.
- El navegador conserva residuos de una sesion legacy.
- Frontend y backend no estan apuntando al mismo modo.
- El backend no esta leyendo
AUTH_COOKIE_MODE=d2. - El frontend no esta leyendo
VUE_APP_BROWSER_AUTH_TRANSPORT=cookie.
La regla simple:
En desarrollo local normal,
Authorizationno debe aparecer en peticiones del frontend web.
Tabla de sintomas
Section titled “Tabla de sintomas”| Sintoma | Causa probable | Como resolver |
|---|---|---|
Veo Authorization en Network | Estas usando legacy | Usa npm run dev y npm run serve, no legacy |
Veo Authorization aunque uso npm run serve | Frontend viejo o terminal vieja | Cierra terminal, borra proceso Node viejo, vuelve a levantar |
| No aparecen cookies | Backend no esta en D2 o CORS/credentials mal | Verifica env y backend npm run dev |
| Aparece CORS error | Puerto frontend no esta en allowlist | Agregar origin local correcto o usar puerto documentado |
| Login devuelve tokens en JSON | Backend esta en legacy | Verificar AUTH_COOKIE_MODE=d2 |
| Refresh manda body con token | Frontend legacy | Verificar VUE_APP_BROWSER_AUTH_TRANSPORT=cookie |
document.cookie muestra access/refresh | Cookies no son HttpOnly | Bug critico |
| localStorage tiene token | Estas en legacy o hay residuo viejo | Clear site data y revisar scripts |
Paso 1: confirma los comandos
Section titled “Paso 1: confirma los comandos”Backend correcto:
cd F:\HemiaAssistantGlobal\hemia-assistance-back-legacynpm run devFrontend correcto:
cd F:\HemiaAssistantGlobal\hemia-assistance-front-legacynpm run serveEstos tambien son correctos:
npm run dev:d2npm run serve:d2Estos son legacy y no son desarrollo normal:
npm run dev:legacynpm run serve:legacySi usaste legacy, ver Authorization es esperado.
Paso 2: cierra procesos viejos
Section titled “Paso 2: cierra procesos viejos”Cierra terminales viejas primero.
Luego revisa puertos:
netstat -ano | findstr :3009netstat -ano | findstr :8080netstat -ano | findstr :8081No mates procesos automaticamente. Identifica el PID y confirma que es un Node local tuyo antes de cerrarlo desde Task Manager o con el comando aprobado por el equipo.
Paso 3: limpia navegador
Section titled “Paso 3: limpia navegador”En Chrome o Edge:
- DevTools.
Application.Storage.Clear site data.- Repite para los origenes locales que hayas usado:
http://localhost:8080http://127.0.0.1:8080http://localhost:8081http://127.0.0.1:8081- el puerto que muestre tu frontend.
- Cierra pestana.
- Abre pestana nueva.
- Login otra vez.
Consola util:
localStorage.clear()sessionStorage.clear()document.cookieRecuerda: document.cookie no puede borrar cookies HttpOnly. Si quieres limpiar todo sin pensar demasiado, usa Clear site data.
Paso 4: revisa DevTools sin interpretar de mas
Section titled “Paso 4: revisa DevTools sin interpretar de mas”Network
Section titled “Network”En una peticion normal a la API:
Authorization: no debe existirCookie: puede existirX-CSRF-Token: debe existir en POST/PUT/PATCH/DELETESi la peticion es GET, puede no llevar X-CSRF-Token. Eso no es error.
Application > Cookies
Section titled “Application > Cookies”Debe existir:
medsync_at_devmedsync_rt_devmedsync_csrf_devDebe verse:
medsync_at_dev HttpOnly = truemedsync_rt_dev HttpOnly = truemedsync_csrf_dev HttpOnly = falseConsole
Section titled “Console”document.cookieEsperado:
Puede aparecer medsync_csrf_dev.No deben aparecer medsync_at_dev ni medsync_rt_dev.Storage
Section titled “Storage”Busca en localStorage y sessionStorage:
tokenaccess_tokenrefresh_tokenrefreshtokenjwtAuthorizationpermissionsbusinesstenantOperationalSi aparece cualquiera de esos como dato auth real, limpia navegador y repite. Si vuelve a aparecer despues de limpiar y levantar D2, tratalo como bug.
Paso 5: valida por comando
Section titled “Paso 5: valida por comando”Backend:
cd F:\HemiaAssistantGlobal\hemia-assistance-back-legacynode scripts\qa\d2-auth-cookie-config.js validatenode scripts\qa\d2-refresh-cookie-runtime-regression.js fullFrontend:
cd F:\HemiaAssistantGlobal\hemia-assistance-front-legacynode scripts\qa\d2-frontend-regression.js fullnode scripts\qa\d2-session-lifecycle-frontend.js fullBrowser:
node scripts\qa\d2-browser-security-evidence.jsEl browser QA se usa con fixtures ficticios y ambiente local/controlado. No lo apuntes a datos reales.
Errores comunes
Section titled “Errores comunes”Use npm start en backend
Section titled “Use npm start en backend”Para local normal usa npm run dev. npm start no fue cambiado para forzar D2 local.
Tengo dos frontends abiertos
Section titled “Tengo dos frontends abiertos”Puedes estar mirando localhost:8080 pero el servidor nuevo esta en localhost:8081. Verifica la URL exacta que imprime Vue CLI.
Limpie localStorage pero siguen cookies
Section titled “Limpie localStorage pero siguen cookies”Eso puede pasar porque access/refresh son HttpOnly. Usa logout o Clear site data.
Veo Cookie y pense que era malo
Section titled “Veo Cookie y pense que era malo”En D2, Cookie es normal. Lo que no debe existir es Authorization.
Veo vue-session-key
Section titled “Veo vue-session-key”Puede existir como llave tecnica. No debe contener tokens, permisos, business ni tenant operacional.
Login responde 403
Section titled “Login responde 403”Primero revisa CSRF y CORS:
- frontend esta en puerto allowlisted;
- backend esta en D2;
X-CSRF-Tokenexiste en login o mutaciones;CORS_CREDENTIALS=true;- no estas mezclando
localhostcon127.0.0.1de forma no permitida.
Checklist para pedir ayuda
Section titled “Checklist para pedir ayuda”Manda esto:
-
Comando exacto del backend.
-
Comando exacto del frontend.
-
URL frontend usada.
-
URL API configurada.
-
Screenshot de Network con el request donde aparece
Authorization. -
Screenshot de
Application > Cookies. -
Logs iniciales de backend y frontend sin secretos.
-
Si aplica, resultado de:
Terminal window npm run dev -- --help -
Confirmacion de si usaste
dev:legacyoserve:legacy. -
Confirmacion de si hiciste
Clear site data.
No mandes passwords, OTPs, access tokens, refresh tokens, cookies completas ni .env.local.