Skip to content
Usuario

Local D2 Troubleshooting

Usa esta pagina cuando algo no cuadra despues de levantar backend y frontend local.

Si ves Authorization en Network, la causa mas probable es una de estas:

  1. Arrancaste legacy manualmente.
  2. Una terminal vieja sigue corriendo.
  3. El navegador conserva residuos de una sesion legacy.
  4. Frontend y backend no estan apuntando al mismo modo.
  5. El backend no esta leyendo AUTH_COOKIE_MODE=d2.
  6. El frontend no esta leyendo VUE_APP_BROWSER_AUTH_TRANSPORT=cookie.

La regla simple:

En desarrollo local normal, Authorization no debe aparecer en peticiones del frontend web.

SintomaCausa probableComo resolver
Veo Authorization en NetworkEstas usando legacyUsa npm run dev y npm run serve, no legacy
Veo Authorization aunque uso npm run serveFrontend viejo o terminal viejaCierra terminal, borra proceso Node viejo, vuelve a levantar
No aparecen cookiesBackend no esta en D2 o CORS/credentials malVerifica env y backend npm run dev
Aparece CORS errorPuerto frontend no esta en allowlistAgregar origin local correcto o usar puerto documentado
Login devuelve tokens en JSONBackend esta en legacyVerificar AUTH_COOKIE_MODE=d2
Refresh manda body con tokenFrontend legacyVerificar VUE_APP_BROWSER_AUTH_TRANSPORT=cookie
document.cookie muestra access/refreshCookies no son HttpOnlyBug critico
localStorage tiene tokenEstas en legacy o hay residuo viejoClear site data y revisar scripts

Backend correcto:

Terminal window
cd F:\HemiaAssistantGlobal\hemia-assistance-back-legacy
npm run dev

Frontend correcto:

Terminal window
cd F:\HemiaAssistantGlobal\hemia-assistance-front-legacy
npm run serve

Estos tambien son correctos:

Terminal window
npm run dev:d2
npm run serve:d2

Estos son legacy y no son desarrollo normal:

Terminal window
npm run dev:legacy
npm run serve:legacy

Si usaste legacy, ver Authorization es esperado.

Cierra terminales viejas primero.

Luego revisa puertos:

Terminal window
netstat -ano | findstr :3009
netstat -ano | findstr :8080
netstat -ano | findstr :8081

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

En Chrome o Edge:

  1. DevTools.
  2. Application.
  3. Storage.
  4. Clear site data.
  5. Repite para los origenes locales que hayas usado:
    • http://localhost:8080
    • http://127.0.0.1:8080
    • http://localhost:8081
    • http://127.0.0.1:8081
    • el puerto que muestre tu frontend.
  6. Cierra pestana.
  7. Abre pestana nueva.
  8. Login otra vez.

Consola util:

localStorage.clear()
sessionStorage.clear()
document.cookie

Recuerda: 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”

En una peticion normal a la API:

Authorization: no debe existir
Cookie: puede existir
X-CSRF-Token: debe existir en POST/PUT/PATCH/DELETE

Si la peticion es GET, puede no llevar X-CSRF-Token. Eso no es error.

Debe existir:

medsync_at_dev
medsync_rt_dev
medsync_csrf_dev

Debe verse:

medsync_at_dev HttpOnly = true
medsync_rt_dev HttpOnly = true
medsync_csrf_dev HttpOnly = false
document.cookie

Esperado:

Puede aparecer medsync_csrf_dev.
No deben aparecer medsync_at_dev ni medsync_rt_dev.

Busca en localStorage y sessionStorage:

token
access_token
refresh_token
refreshtoken
jwt
Authorization
permissions
business
tenantOperational

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

Backend:

Terminal window
cd F:\HemiaAssistantGlobal\hemia-assistance-back-legacy
node scripts\qa\d2-auth-cookie-config.js validate
node scripts\qa\d2-refresh-cookie-runtime-regression.js full

Frontend:

Terminal window
cd F:\HemiaAssistantGlobal\hemia-assistance-front-legacy
node scripts\qa\d2-frontend-regression.js full
node scripts\qa\d2-session-lifecycle-frontend.js full

Browser:

Terminal window
node scripts\qa\d2-browser-security-evidence.js

El browser QA se usa con fixtures ficticios y ambiente local/controlado. No lo apuntes a datos reales.

Para local normal usa npm run dev. npm start no fue cambiado para forzar D2 local.

Puedes estar mirando localhost:8080 pero el servidor nuevo esta en localhost:8081. Verifica la URL exacta que imprime Vue CLI.

Eso puede pasar porque access/refresh son HttpOnly. Usa logout o Clear site data.

En D2, Cookie es normal. Lo que no debe existir es Authorization.

Puede existir como llave tecnica. No debe contener tokens, permisos, business ni tenant operacional.

Primero revisa CSRF y CORS:

  • frontend esta en puerto allowlisted;
  • backend esta en D2;
  • X-CSRF-Token existe en login o mutaciones;
  • CORS_CREDENTIALS=true;
  • no estas mezclando localhost con 127.0.0.1 de forma no permitida.

Manda esto:

  1. Comando exacto del backend.

  2. Comando exacto del frontend.

  3. URL frontend usada.

  4. URL API configurada.

  5. Screenshot de Network con el request donde aparece Authorization.

  6. Screenshot de Application > Cookies.

  7. Logs iniciales de backend y frontend sin secretos.

  8. Si aplica, resultado de:

    Terminal window
    npm run dev -- --help
  9. Confirmacion de si usaste dev:legacy o serve:legacy.

  10. Confirmacion de si hiciste Clear site data.

No mandes passwords, OTPs, access tokens, refresh tokens, cookies completas ni .env.local.