Pular para conteúdo

Frontend — hardening sessão (Fase 4)

Complementa a Fase 3 com proteção de rotas, refresh JWT e health do auth na tela de login.

P4-09 — AuthGuard

  • app-routing.module.ts: canActivate + canActivateChild no DefaultLayoutComponent
  • auth.guard.ts: valida token no localStorage; confirma sessão via GET /user; redireciona para /login em 401/403

P4-10 — Refresh JWT

  • auth.interceptor.ts: falha de refresh em /user encerra sessão e redireciona (não reutiliza token expirado)
  • Ignora external-login no tratamento de 401

P4-11 — Health na login

  • auth-health.service.ts: GET {authUrl}/actuator/health (header X-Skip-Interceptor)
  • login.component: alerta e desabilita botões se auth estiver down
  • Flag opcional: ECOSIF_ANGULAR_CHECK_AUTH=falsenão chama o actuator e libera os botões (features.checkAuthHealth no config.json; default true)

Status do desenvolvimento (código)

  • [x] P4-09 AuthGuard em rotas do layout (auth.guard.ts + app-routing.module.ts)
  • [x] P4-10 Refresh JWT / encerramento de sessão no interceptor (auth.interceptor.ts)
  • [x] P4-11 Health na tela de login (auth-health.service.ts)
  • [ ] Validação visual AuthGuard no browser (redirect sem token) — pendente manual em homolog
  • [ ] Smoke Microsoft/Google no browser após hardening — pendente manual

Verificação rápida

# Sem token → redirect login
curl -s -o /dev/null -w '%{http_code}\n' http://localhost/ecosif-masterdata/user   # 401

# Health auth via proxy Angular
curl -s http://localhost/ecosif-auth/actuator/health | grep UP

# Login local após signin
# Navegar /dashboard com JWT válido → AuthGuard permite

Referências