Criação de Apps

Login em apps: como fazer com segurança (senha, Google e passkeys)

Resposta rápida

Para um login seguro, use um serviço de autenticação consolidado em vez de criar tudo do zero, nunca guarde senhas em texto simples (use hash com Argon2, bcrypt ou scrypt), ofereça verificação em duas etapas e passkeys, proteja a sessão com HTTPS e armazenamento seguro de tokens e confira as permissões de cada usuário no servidor, não só na tela.

Neste artigo
  1. Primeira regra: não reinvente a roda
  2. Como tratar as senhas
  3. Verificação em duas etapas e login social
  4. Proteja a sessão depois do login
  5. Autenticar não é o mesmo que autorizar
  6. Recuperação de conta e exclusão de dados
  7. Checklist final antes de publicar

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:

  1. Passkeys: login por biometria ou PIN do aparelho, sem senha digitável, resistente a golpes de phishing. Veja o que são passkeys.
  2. Aplicativo autenticador: gera códigos temporários no celular do usuário.
  3. 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:

  1. Senhas guardadas com hash adequado, por você ou pelo serviço de login.
  2. HTTPS em todas as conexões.
  3. Opção de verificação em duas etapas ou passkey.
  4. Limite de tentativas e mensagens genéricas de erro.
  5. Permissões verificadas no servidor.
  6. Segredos fora do app.
  7. 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.

  • Segurança
  • Login
  • Aplicativos

Perguntas frequentes

Posso criar meu próprio sistema de login ou é melhor usar um serviço pronto?

Para a maioria dos projetos, é melhor usar um serviço pronto, como os de autenticação do Firebase, do Supabase ou de plataformas especializadas. Eles já tratam armazenamento de senhas, recuperação de conta e proteção contra ataques, que são fáceis de errar em soluções feitas à mão.

SMS é uma boa forma de segunda verificação?

É melhor do que nenhuma, mas apps autenticadores e passkeys são mais seguros, porque o SMS pode ser interceptado em golpes como a troca de chip. Ofereça SMS como opção, não como a única.

O app precisa ter opção de apagar a conta?

Sim, para quem permite criar conta. As lojas de apps exigem que o usuário consiga solicitar a exclusão da conta e dos dados dentro do app, e a LGPD garante o direito de eliminação em muitos casos. Confira as regras atuais da Google Play e da App Store.

Leia também

Criação de Apps

Firebase ou Supabase: qual backend usar no seu app

O que é BaaS e como decidir entre Firebase e Supabase para guardar dados e usuários do seu app.

· 5 min de leitura
Segurança Digital

Passkeys: o que são e como usar no lugar da senha

Entenda o que são as chaves de acesso, por que resistem a golpes de phishing e como criar a primeira.

· 5 min de leitura
Criação de Apps

Política de privacidade para app: o que incluir e como seguir a LGPD

Um guia prático para escrever a política de privacidade do seu aplicativo e cumprir as exigências básicas da LGPD.

· 5 min de leitura
Segurança Digital

Verificação em duas etapas: o que é e como ativar

O que é a verificação em duas etapas, qual tipo escolher e o caminho para ativá-la nas contas principais.

· 5 min de leitura

Deixe seu comentário