Tudo o que vale a pena saber, nada do que não vale.
Gere e armazene com segurança
Crie um código de 4 a 8 dígitos no servidor, armazene apenas um hash dele com um TTL curto (5 a 10 minutos) e vincule-o ao utilizador e ao canal. Nunca envie o código para o cliente para comparação — verifique-o no servidor. Veja /answers/what-is-otp.
Enviar com um plano B
Envie a mensagem por uma rota direta e de alta prioridade e configure um canal alternativo (chamada instantânea, WhatsApp ou voz) para que um SMS atrasado não bloqueie o utilizador. Consulte /answers/best-channel-for-otp e /answers/sms-fallback-strategy.
Verificar com limites
Compare a entrada do utilizador com o hash armazenado, limite o número de tentativas antes de forçar um reenvio, invalide a mensagem em caso de sucesso e faça com que ela expire rapidamente. Consulte /answers/sms-otp-best-practices.
Limitar e monitorizar a taxa
Limite as solicitações por número e por IP para evitar o envio de SMS em massa e fique atento a picos de envio para destinos incomuns. Considere a autenticação silenciosa de rede para evitar o envio de um código que possa gerar custos. Consulte /answers/what-is-sms-pumping e /answers/what-is-silent-network-auth.