/activar-usuario es una ruta pública. ActivarComponent recibe ?d=<dato cifrado>, consulta GET /nebula-masters/api/v1/usuario/activacion/validar?d=... y solo presenta el formulario si el backend confirma que el enlace sigue vigente.
Al confirmar, valida que la contraseña cumpla la política (mínimo ocho caracteres, minúscula, mayúscula, número y símbolo) y que la confirmación coincida. Luego envía POST /nebula-masters/api/v1/usuario/activacion/confirmar con { data, password }. Tras éxito, navega al login. La activación no crea un token de sesión frontend.
Si /login responde mustChangePassword=true, LoginComponent guarda la marca must_change_password y redirige a /cambiar-clave. mustChangePasswordGuard requiere que exista una sesión activa y dicha marca.
CambiarClaveComponent envía PUT /simappe-admin/api/v1/user-identity/update-password?userId=... con la nueva clave en param2. El endpoint usa el token de sesión que el interceptor agrega. Tras éxito limpia la marca, espera brevemente y cierra la sesión para exigir un nuevo login con la nueva contraseña.
/recuperar es pública y se monta desde RECUPERAR_ROUTES. Consultar libs/login/src/lib/recuperar/recuperar.component.ts para el endpoint y comportamiento vigente; este flujo es distinto a cambiar una contraseña vencida y a activar una invitación.
| Flujo | Identidad/estado | Token de login requerido |
|---|---|---|
| Activar invitación | Usuario nuevo con token/enlace cifrado de activación | No |
| Recuperar clave | Usuario existente que inicia recuperación | No para comenzar el proceso |
| Cambio obligatorio | Usuario que autenticó, pero tiene contraseña vencida | Sí, sesión temporal activa |