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.
"É 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.