Em termos de texto, não gosto de usar o termo “WebAuthn”; acho que pode confundir os usuários finais. Use apenas “Chave de Segurança” ou algo similar.
Gostaria muito de evitar pensar em “primeiro fator / autenticação sem senha” aqui. Para mim, precisamos lançar esse recurso e conviver com ele por 3 a 4 meses antes mesmo de considerar essa questão.
Especialmente porque já suportamos login por e-mail, então, tecnicamente, o usuário pode esquecer a senha.
Concordo que o fluxo deve ser o seguinte: se possível, houver APIs disponíveis e uma chave WebAuthn, tente a WebAuthn primeiro, mas ofereça uma saída ao usuário. Além disso, lembre-se de que o usuário pode ter vários dispositivos WebAuthn; sugiro seguir o que o Google faz aqui para lidar com isso (um link “Escolher outra opção” ou algo similar).
Uma coisa que penso a longo prazo, em um item separado, é que poderíamos usar o “aplicativo Discourse” para 2FA, o que seria bem legal, @pmusaraj. Isso tornaria o uso da 2FA muito mais ubíquo.