2.7 KiB
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/googlejá existe - Verifica o
id_tokencomhttps://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 GoogleLoginUseCasejá está definido emmobile/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)
- Android: SHA-1 do keystore + package name (
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
- Backend: testar
POST /api/v1/auth/oauth/googlecom um token real via curl/Postman - Mobile: testar fluxo completo no simulador/dispositivo