As senhas de uso único (OTPs) são um mecanismo para melhorar a segurança apenas das senhas. Quando um OTP baseado em tempo (TOTP) é armazenado no telefone de um usuário e combinado com algo que o usuário conhece (senha), você tem um acesso fácil para a autenticação multifator sem adicionar dependência de um provedor de SMS. Esta combinação de senha e TOTP é usada por muitos sites populares, incluindo Google, GitHub, Facebook, Salesforce e muitos outros.
A biblioteca otp
permite adicionar facilmente TOTPs ao seu próprio aplicativo, aumentando a segurança do usuário contra violações de senha em massa e malware.
Como o TOTP é padronizado e amplamente implantado, existem muitos clientes móveis e implementações de software.
otp
Suporta:Para obter um exemplo de fluxo de trabalho de inscrição funcional, o GitHub documentou o deles, mas o básico é:
key,_ := totp.Generate(...)
.key.Secret()
e key.Image(...)
.totp.Validate(...)
.key.Secret()
GenerateCode
e um contador ou estrutura time.Time
para gerar um código válido compatível com a maioria das implementações.GenerateCodeCustom
em qualquer um dos módulos.totp.Validate(...)
Quando um usuário perde o acesso ao seu dispositivo TOTP, ele não terá mais acesso à sua conta. Como os TOTPs são frequentemente configurados em dispositivos móveis que podem ser perdidos, roubados ou danificados, este é um problema comum. Por esta razão, muitos provedores fornecem aos seus usuários “códigos de backup” ou “códigos de recuperação”. Estes são um conjunto de códigos de uso único que podem ser usados em vez do TOTP. Elas podem ser simplesmente strings geradas aleatoriamente que você armazena em seu back-end. A documentação do Github fornece uma visão geral da experiência do usuário.
Abra problemas no Github para ideias, bugs e pensamentos gerais. Solicitações pull são obviamente preferidas :)
otp
é licenciado sob a Licença Apache, Versão 2.0