Files
MeowSpool/OAuth.md
T

2.7 KiB

Plano: Configurar Google OAuth

Context

O projeto já tem a estrutura OAuth implementada nos dois lados, mas ambos precisam de configuração/implementação para funcionar de ponta a ponta.


Status atual

Backend (Rust/Axum) — Lógica pronta, falta só configuração

  • Endpoint POST /api/v1/auth/oauth/google já existe
  • Verifica o id_token com https://oauth2.googleapis.com/tokeninfo
  • Cria usuário se novo, ou vincula a conta existente por email
  • Só falta: preencher as variáveis de ambiente em backend/.env

Mobile (React Native/Expo) — ⚠️ UI pronta, falta integração do SDK

  • Botão "Sign in with Google" existe em mobile/app/(auth)/login.tsx:55
  • GoogleLoginUseCase já está definido em mobile/src/infrastructure/container.ts
  • Falta: integrar o SDK nativo do Google Sign-In e chamar o use case

O que você vai precisar

1. Google Cloud Console

  • Criar um projeto (ou usar existente)
  • Ativar a API: Google Sign-In (ou "Google Identity")
  • Criar credenciais OAuth 2.0:
    • Android: SHA-1 do keystore + package name (com.meowspool.*)
    • iOS: Bundle ID
    • Web/Backend: Client ID + Client Secret (para o backend verificar o token)

2. Backend — apenas .env

Arquivo: backend/.env

GOOGLE_CLIENT_ID=xxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=xxxx   # necessário se usar Authorization Code Flow

3. Mobile — integrar SDK

Instalar @react-native-google-signin/google-signin ou usar expo-auth-session (mais simples para Expo).

Implementar onGoogleLogin() em mobile/app/(auth)/login.tsx:

// 1. Chamar SDK do Google → obtém id_token
// 2. Chamar GoogleLoginUseCase.execute(id_token)
// 3. Use case já envia para POST /api/v1/auth/oauth/google

Arquivos críticos a modificar

Arquivo O que fazer
backend/.env Adicionar GOOGLE_CLIENT_ID e GOOGLE_CLIENT_SECRET
mobile/app/(auth)/login.tsx Implementar onGoogleLogin() (linha ~55)
mobile/package.json Adicionar dependência do SDK Google Sign-In
mobile/app.json Adicionar configuração do Google Sign-In para Android/iOS

Resumo da resposta à pergunta

Precisa configurar os dois, mas por motivos diferentes:

  • Backend: só variáveis de ambiente (15 minutos)
  • Mobile: integração do SDK nativo (algumas horas)

Verificação

  1. Backend: testar POST /api/v1/auth/oauth/google com um token real via curl/Postman
  2. Mobile: testar fluxo completo no simulador/dispositivo