Voltar ao blog
Integração
Social Login
OAuth2
Java
Google

Como adicionar Social Login em uma aplicação Java

Aprenda os conceitos por trás do Social Login com Google, GitHub ou Microsoft e como integrar esse fluxo em aplicações Java.

9 min de leitura

Social Login delega autenticação a um IdP externo (Google, Microsoft, GitHub). Para o usuário é um clique; para o backend é OAuth2 Authorization Code com PKCE, state anti-CSRF, troca de code por tokens e criação ou vínculo de conta local. Implementar mal abre brecha de account takeover.

Fluxo resumido

  • App redireciona para Google com client_id, scope, redirect_uri, state e PKCE
  • Usuário autentica no Google
  • Google redireciona de volta com code
  • Backend troca code + code_verifier por tokens (nunca no browser público)
  • Backend cria sessão/JWT próprio ou vincula sub do Google ao usuário local

Configuração típica

No Console do provedor

  • OAuth client com redirect URIs exatas (sem wildcard permissivo)
  • Scopes mínimos (openid, email, profile)
  • Client secret só no servidor

Na aplicação Java

  • Endpoint /auth/social/start gera state e PKCE
  • Callback valida state, troca code, lê claims do ID token
  • Política de link: e-mail já existe? merge ou erro?

Quando adicionar Social Login

  • B2C ou prosumer — reduz fricção no cadastro
  • Times que já usam Google Workspace
  • Produtos que não querem gerenciar senha inicial

Erros comuns

  • Client secret em SPA ou app mobile nativo sem PKCE
  • Não validar state — vulnerável a CSRF
  • Confiar só no email do token sem verificar email_verified
  • Criar usuário admin se o email for @gmail.com
  • Um redirect_uri de produção e staging misturados

Como o Gatekeeper ID ajuda

O Gatekeeper expõe fluxo social pronto: start → redirect Google → exchange. Você configura o provider no Console por tenant e consome via API ou SDK — sem montar OAuth client por ambiente na mão.

Leia os fundamentos em OAuth2 vs OpenID Connect e por que evitar login caseiro em não desenvolva login do zero.

Conclusão

Social Login é OAuth2 bem feito + política de conta. Em Java, mantenha troca de tokens no backend e deixe identidade centralizada no IAM.

Artigos relacionados