[RFC] 2FA no TabNews
Eu acabei de abrir um PR que adiciona 2FA no tabnews, eu queria que dessem uma opiniao sobre como foi implementado, e em paralelo paramos um pouco pra discutir como isso funciona.
PR: https://github.com/filipedeschamps/tabnews.com.br/pull/929
Como 2FA funciona?
Quando ativamos o 2FA, o servidor gera um segredo, guarda ele e devolve esse segredo, esse segredo vai ser um conjunto de caracteres aleatorios, depois o front end mostra ele em formato de QR Code pra podermos scanear, e assim o celular vai ficar com o mesmo segredo, e assim vão gerar o mesmo código.
O processo de verificação funciona assim:
- O celular gera um código baseado no segredo e no horario do sistema arredondado em 30 segundos
- o servidor tambem gera um código
- O servidor verifica se os códigos são iguais
Esse tipo de código de chama TOTP (Time-based one-time password)