feat: adicionar documentação para configuração do Google OAuth no backend e mobile

This commit is contained in:
2026-03-14 22:01:04 -03:00
parent 3689083e55
commit f5f4e878b4
+83
View File
@@ -0,0 +1,83 @@
# 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