O login é a porta de entrada do seu app. Se ele for fraco, os dados de todos os usuários ficam em risco, e o problema chega rápido: invasão de contas, vazamento de informações e perda de confiança. A boa notícia é que você não precisa ser especialista para acertar o básico, desde que siga algumas regras.
Primeira regra: não reinvente a roda
Autenticação é uma área cheia de detalhes técnicos. Por isso, o caminho mais seguro costuma ser usar um serviço pronto, como o login do Firebase ou do Supabase, ou plataformas especializadas em identidade. Eles já resolvem armazenamento de senhas, e-mail de recuperação, proteção contra tentativas em massa e login social. O texto sobre Firebase ou Supabase compara dois deles.
Se for programar o login por conta própria, siga um guia de referência atual (como as recomendações da OWASP, organização dedicada à segurança de aplicações) e não improvise.
Como tratar as senhas
- Nunca guarde a senha em texto simples, nem criptografada de forma reversível. O que se guarda é um hash, uma transformação de mão única.
- Use algoritmos próprios para senhas, como Argon2, bcrypt ou scrypt. Eles são lentos de propósito, o que dificulta ataques. Evite MD5 e SHA-1 puros.
- Aceite senhas longas e frases: o tamanho pesa mais do que regras de símbolos obrigatórios. Permitir colar a senha ajuda quem usa gerenciador de senhas.
- Bloqueie senhas muito comuns, como 123456, e, se possível, senhas que já apareceram em vazamentos.
- Limite tentativas: depois de várias falhas seguidas, faça uma pausa ou peça uma verificação extra.
- Mensagens genéricas: diga “e-mail ou senha incorretos” em vez de revelar qual dos dois está errado.
Para orientar seus usuários, vale indicar boas práticas de senha forte, como frases longas e o uso de um gerenciador de senhas, e permitir que o campo de senha aceite o que o gerenciador preencher.
Verificação em duas etapas e login social
Verificação em duas etapas
A verificação em duas etapas (2FA) exige um segundo fator além da senha. Ofereça opções em ordem de segurança:
- Passkeys: login por biometria ou PIN do aparelho, sem senha digitável, resistente a golpes de phishing. Veja o que são passkeys.
- Aplicativo autenticador: gera códigos temporários no celular do usuário.
- SMS ou e-mail: é melhor do que nada, mas mais fácil de interceptar.
Explicar ao usuário o que é a verificação em duas etapas aumenta a adesão. Para contas com acesso a dinheiro, dados sensíveis ou painéis de administração, torne a segunda etapa obrigatória.
Login social: Google, Apple e outros
Permitir entrar com uma conta Google, Apple ou outra reduz o atrito e tira de você a responsabilidade de guardar a senha. Tem prós e contras:
- Vantagens: cadastro em um toque, menos senhas esquecidas, boa segurança herdada do provedor.
- Cuidados: peça só as informações necessárias, ofereça também uma alternativa por e-mail para quem não quer vincular a conta e saiba que a Apple costuma exigir uma opção de login equivalente (como Fazer login com a Apple) quando um app oferece login social de terceiros. Essa regra muda com o tempo; consulte as diretrizes atuais.
Proteja a sessão depois do login
Passar pelo login é só o começo. Depois, o app guarda uma sessão, geralmente um token que prova quem é o usuário. Cuide dele:
- use HTTPS sempre, sem exceções;
- guarde tokens em locais seguros do aparelho (o Keychain no iPhone e o Keystore no Android), e não em arquivos de texto comuns;
- use tokens com validade curta e renove quando necessário;
- ao sair, invalide a sessão no servidor;
- ofereça ao usuário uma tela para ver e encerrar sessões abertas.
Autenticar não é o mesmo que autorizar
Saber quem é o usuário (autenticação) é diferente de saber o que ele pode fazer (autorização). Um erro clássico é esconder um botão na tela, mas permitir que qualquer pessoa chame a função no servidor. A regra de ouro: toda ação sensível deve ser verificada no servidor, a cada pedido. Teste com duas contas diferentes e tente abrir, pelo endereço, um dado que pertence à outra.
Recuperação de conta e exclusão de dados
- Recuperação de senha: envie um link com validade curta e que só funcione uma vez. Nunca envie a senha antiga por e-mail.
- Confirmação de e-mail: evita cadastros com endereços de terceiros.
- Exclusão de conta: quem cria conta no app precisa conseguir pedir a exclusão por dentro dele. As lojas pedem isso, e a LGPD protege o direito de eliminação em diversos casos.
- Dados mínimos: quanto menos dados você guarda, menor o estrago em um vazamento. Descreva o tratamento na política de privacidade.
Checklist final antes de publicar
Um login bem feito é invisível para o usuário honesto e um muro para quem tenta invadir. Para chegar lá, confirme item por item:
- Senhas guardadas com hash adequado, por você ou pelo serviço de login.
- HTTPS em todas as conexões.
- Opção de verificação em duas etapas ou passkey.
- Limite de tentativas e mensagens genéricas de erro.
- Permissões verificadas no servidor.
- Segredos fora do app.
- Fluxo de recuperação e de exclusão de conta funcionando.
Teste cada item de ponta a ponta antes do lançamento e peça a alguém de confiança para tentar “quebrar” seu login. Depois de publicar, acompanhe sinais de abuso, como muitas tentativas falhas vindas do mesmo lugar, e tenha um plano claro para avisar os usuários se algo acontecer. Uma hora de teste hoje evita semanas de prejuízo depois.