Created: 2026-06-23 | Last Updated: 2026-06-23
Solo en modo personal (un cajero dueño del terminal). Tras 3 min de inactividad, la máquina hace Active → Locked cuando idlePolicy.lockWithResume = true. El lock ocluye por completo la venta debajo y pide PIN para volver a Active. Pantalla de superficie de auth → revisión de seguridad + fidelidad antes de escribir JSX.
Ni nombre, ni avatar, ni iniciales, ni «último acceso». Quien camine al terminal no aprende quién está detrás del lock. El PIN tecleado se valida contra el dueño de la sesión bloqueada — acierto reanuda, fallo cae al mensaje uniforme.
Un solo mensaje. No distingue «PIN incorrecto», «no es tu sesión» (otro empleado intentando reanudar), ni «cuenta bloqueada». Sin contador de intentos. Mismo oráculo cerrado que B1, mismo servicio (PinAuthService con decoy PBKDF2 — defensa de timing heredada).
El patrón convencional «Hola de nuevo, María». Cómodo, pero filtra la identidad del cajero bloqueado a cualquiera que camine al terminal. Rechazado por el criterio de seguridad #3.
No usarAusencias deliberadas — el contraste con el lock anónimo de la izquierda.
PinAuthService, decoy PBKDF2 → defensa de timing heredada, no reimplementada). ✓logout de la máquina. La auditoría Logout se atribuye al dueño de la sesión con reason='explicit' (invariante BUG-010), no a quien presiona el botón. ✓