# 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`: ```typescript // 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