Passkeys (WebAuthn)
Por qué
Un passkey es un par público-privado ligado a un dispositivo. Phishing-resistant: no se puede «entregar» por un enlace de phishing.
Registro
/app/security → Passkeys → Register. El navegador invoca Touch ID / Face ID / Windows Hello / YubiKey. Después, el passkey se guarda en el keychain del dispositivo y en el backend (solo la clave pública).
Login
En /login pulsas «Entrar con passkey» — el navegador muestra usable credentials.
Anti-enumeración
Ante un email desconocido, Unimoni igualmente devuelve un discoverable challenge — la UX del navegador se ve idéntica para emails existentes e inexistentes.