Justo! Acho que implementar as suas seja uma solução boa, mas isso ainda faz manter uma informação valiosa no banco de dados que é a senha... e caso a pessoa tenha utilizado a mesma senha em outro serviço na qual teve seus dados expostos, ela está 50% exposta aqui (faltando só o email).
Em paralelos, já vi serviços implementarem magic link de uma forma muito insegura, que é receber um email e ao clicar no link dele, o dispositivo na qual fez a requisição é autenticado. Por exemplo:
- Atacante (pelo celular, ou qualquer outro client) faz requisição com o usuário/email da vítma.
- Vítma recebe email e clica sem querer no link (ou o Outlook clica por você, como vimos no passado)
- Celular do atacante é autenticado.
Sim sim. Além de autenticação por magic link (ou outro método sem senha) ser segura (se implementada da forma correta), por não precisar armazenar a senha em um banco de dados "home-made" e pelo acesso estar mais seguro (por exemplo: é muito mais difícil hackear um banco de dados que é da Google do que um que não podemos garantir se vai vazar a URL, etc.), também é conveniente para o usuário. Quanto a implemantação, não acho que devemos fazer apenas por e-mail. Além de aplicativos como o Google Authenticator, se no futuro nós fizermos um aplicativo, poderiamos implementar ele assim também. Em pararelo, poderíamos criar backup codes, para caso a pessoa perder o acesso do e-mail, resolvendo o problema que fez com que não implementasse o magic link.