Voltar ao blog
Segurança
Segurança
IAM
OAuth2
Login

Por que desenvolver login do zero é uma má ideia

Criar login parece simples, mas envolve senha, token, refresh token, recuperação de senha, social login, auditoria e segurança. Veja os riscos.

8 min de leitura

"É só um endpoint de login" — toda equipe já ouviu isso no sprint zero. Duas semanas depois aparecem refresh token, rate limit, hash de senha, MFA, recuperação por e-mail, login social, bloqueio por tentativa, auditoria LGPD e incidente de sessão fixada. Login parece simples porque os usuários só veem um formulário. Por baixo, é um sistema distribuído de segurança.

O que um login "mínimo" esconde

  • Armazenamento seguro de senha (bcrypt/argon2, pepper, rotação)
  • Emissão e revogação de access + refresh tokens
  • Proteção contra brute force, credential stuffing e bots
  • Recuperação de senha sem vazar existência de conta
  • Verificação de e-mail e fluxos de convite
  • Social Login com state, PKCE e validação de redirect
  • Logout real (revogar refresh, invalidar sessão)
  • Logs de auditoria e alertas de anomalia

Quando faz sentido construir do zero?

Quase nunca para produtos com usuários externos. Exceções raras: requisitos regulatórios extremos de air-gap, ou quando login é o core business da empresa. Para SaaS, fintech, healthtech ou qualquer API B2B, o custo de erro supera o custo de uma plataforma IAM.

Riscos reais

Segurança

  • JWT sem rotação de chaves ou com algoritmo "none"
  • Refresh token longo demais, sem binding a device
  • Timing attacks em comparação de senha

Produto

  • Clientes enterprise pedindo SSO, SAML ou SCIM — você não tem
  • Cada novo IdP vira projeto de meses
  • Time core parado mantendo auth em vez de feature de negócio

Erros clássicos de times que "fazem rápido"

  • Guardar senha em texto ou MD5
  • Session ID previsível ou só no localStorage
  • Reimplementar OAuth2 sem ler RFC — bugs sutis em redirect
  • Copiar tutorial de JWT do Medium de 2019

Como o Gatekeeper ID ajuda

Em vez de manter um monólito de auth, você consome API de login, refresh, registro e social prontos — com multi-tenant, Console e SDK Spring Boot. Seu time foca no domínio; tokens, JWKS e RBAC ficam padronizados.

Entenda os fundamentos em OAuth2 vs OpenID Connect, JWT explicado e Social Login em Java.

Conclusão

Login customizado é dívida técnica com juros de segurança. Use padrões (OAuth2/OIDC), valide tokens corretamente e delegue o que não é diferencial — ou prepare budget para incidentes e refactors.

Artigos relacionados