Geek Social — Documentação
API ReferenceAuth

GET /auth/google

Iniciar OAuth com Google (login/registro)

GET/auth/googleAuth: público

Inicia o fluxo OAuth com Google no modo login/registro (sem necessidade de estar autenticado). Gera um state JWT (5 min de validade), monta a URL de autorização do Google com scope=openid email profile e prompt=select_account, e redireciona o navegador pra essa URL.

Não consome JSON. Use redirecionando o navegador inteiro pra essa rota — não chame via fetch (perderá o redirect).

Quando chamar

  • Botão "Entrar com Google" / "Cadastrar com Google" na tela de login
  • Frontend faz window.location.href = 'http://localhost:3003/auth/google' (ou <a href="...">)

Request

Esta requisição não tem corpo.

Sem body, sem auth obrigatória. O backend não conhece quem o user é nesse momento.

Response

200

Sem corpo na resposta.

302 Redirect pra accounts.google.com/o/oauth2/v2/auth?...&state=<jwt>. O navegador segue automaticamente.

Erros

Sem respostas de erro documentadas.

Apenas erros de servidor (5xx) se a config OAuth do Google estiver quebrada (GOOGLE_CLIENT_ID ausente, etc.) ou o discovery endpoint do Google estiver fora.

Exemplos

curl -X GET 'http://localhost:3003/auth/google' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer SEU_ACCESS_TOKEN' \
  -d '{}'
await fetch('http://localhost:3003/auth/google', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    Authorization: 'Bearer ' + accessToken,
  },
  body: JSON.stringify({}),
})

Fluxo no frontend

<a href="http://localhost:3003/auth/google">Entrar com Google</a>

Ou via JS:

window.location.href = `${API_BASE_URL}/auth/google`

Side effects

  • JWT signing — gera state token com { mode: 'login', exp: now + 5min }
  • Sem mudança em DB ainda — só ocorre no /auth/google/callback
  • Sem cookies setados
  • Sem notificações ou socket

Configuração necessária

Para o endpoint funcionar, o backend precisa ter:

GOOGLE_OAUTH_ENABLED=true
GOOGLE_CLIENT_ID=...apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=...
APP_URL=http://localhost:3003   # usado pra montar o redirect_uri

Sem essas variáveis, o módulo Google nem registra as rotas — chamar essa URL retorna 404.

No console do Google Cloud, o OAuth client precisa ter redirect URI autorizado: ${APP_URL}/auth/google/callback (ex: http://localhost:3003/auth/google/callback).

Relacionados

On this page