Sistema completo de gestão de PDI com: - Autenticação com email/senha e Google OAuth - Workspaces privados isolados - Sistema de convites com código único - Interface profissional com Next.js 14 - Backend NestJS com PostgreSQL - Docker com Nginx e SSL Desenvolvido por Sergio Correa
5.1 KiB
🔐 Como Configurar Google OAuth no PDIMaker
⚠️ Erro Atual: "invalid_client"
Você precisa criar as credenciais OAuth no Google Cloud Console.
📋 Passo a Passo Completo
1. Acessar Google Cloud Console
Abra: https://console.cloud.google.com/
2. Criar/Selecionar Projeto
- Clique em "Select a project" (topo da página)
- Clique em "NEW PROJECT"
- Nome do projeto:
PDIMaker - Clique em "CREATE"
- Aguarde a criação e selecione o projeto
3. Configurar OAuth Consent Screen
-
No menu lateral, vá em: APIs & Services → OAuth consent screen
-
Selecione: External (permite qualquer email do Google)
-
Clique em "CREATE"
-
App information:
- App name:
PDIMaker - User support email:
seu_email@gmail.com - Application home page:
https://pdimaker.com.br - Application privacy policy:
https://pdimaker.com.br/privacy(pode deixar em branco) - Application terms of service:
https://pdimaker.com.br/terms(pode deixar em branco)
- App name:
-
Developer contact information:
- Email:
seu_email@gmail.com
- Email:
-
Clique em "SAVE AND CONTINUE"
-
Scopes: Clique em "ADD OR REMOVE SCOPES"
- Selecione:
.../auth/userinfo.email.../auth/userinfo.profile
- Clique em "UPDATE"
- Clique em "SAVE AND CONTINUE"
- Selecione:
-
Test users: (Opcional)
- Clique em "ADD USERS"
- Adicione seu email:
sergio09@gmail.com - Clique em "ADD"
- Clique em "SAVE AND CONTINUE"
-
Summary: Clique em "BACK TO DASHBOARD"
4. Criar Credenciais OAuth
-
No menu lateral, vá em: APIs & Services → Credentials
-
Clique em "+ CREATE CREDENTIALS" → "OAuth client ID"
-
Application type: Web application
-
Name:
PDIMaker Web Client -
Authorized JavaScript origins:
https://pdimaker.com.brhttps://www.pdimaker.com.brhttp://localhost:3300(para testes locais)
-
Authorized redirect URIs:
https://pdimaker.com.br/api/auth/callback/googlehttps://www.pdimaker.com.br/api/auth/callback/googlehttp://localhost:3300/api/auth/callback/google(para testes locais)
-
Clique em "CREATE"
-
IMPORTANTE: Uma janela vai abrir com:
- Client ID (começando com algo como
123456789-abc...apps.googleusercontent.com) - Client Secret (algo como
GOCSPX-abc123...)
COPIE ESSES DOIS VALORES!
- Client ID (começando com algo como
🔧 Configurar no Servidor
Opção 1: Editar .env manualmente
# Conecte no servidor
cd /var/www/pdimaker
# Edite o arquivo .env
nano .env
# Adicione/atualize estas linhas:
GOOGLE_CLIENT_ID=cole_aqui_o_client_id
GOOGLE_CLIENT_SECRET=cole_aqui_o_client_secret
NEXTAUTH_SECRET=cole_uma_string_aleatoria_longa_aqui
NEXTAUTH_URL=https://pdimaker.com.br
Opção 2: Usar comandos (mais rápido)
cd /var/www/pdimaker
# Substitua os valores abaixo pelos seus
export GOOGLE_CLIENT_ID="seu_client_id_aqui"
export GOOGLE_CLIENT_SECRET="seu_client_secret_aqui"
# Adicionar ao .env
echo "GOOGLE_CLIENT_ID=$GOOGLE_CLIENT_ID" >> .env
echo "GOOGLE_CLIENT_SECRET=$GOOGLE_CLIENT_SECRET" >> .env
# Gerar NEXTAUTH_SECRET aleatório
echo "NEXTAUTH_SECRET=$(openssl rand -base64 32)" >> .env
echo "NEXTAUTH_URL=https://pdimaker.com.br" >> .env
Reiniciar o Container
cd /var/www/pdimaker
docker restart pdimaker-web
# Verificar se está rodando
docker logs pdimaker-web --tail=20
🧪 Testar
- Acesse: https://pdimaker.com.br
- Clique em "Entrar com Google"
- Escolha sua conta Google
- Aceite as permissões
- Você será redirecionado para o dashboard! 🎉
❓ Problemas Comuns
Erro: "invalid_client"
- ✅ Verifique se o
GOOGLE_CLIENT_IDestá correto - ✅ Verifique se o
GOOGLE_CLIENT_SECRETestá correto - ✅ Verifique se não há espaços ou aspas extras no
.env
Erro: "redirect_uri_mismatch"
- ✅ Verifique se adicionou o callback correto no Google Console:
https://pdimaker.com.br/api/auth/callback/google
Erro: "access_denied"
- ✅ Verifique se adicionou seu email nos Test Users (se o app está em teste)
📝 Exemplo de .env Completo
# Banco de Dados
DB_PASSWORD=sua_senha_db
DATABASE_URL=postgresql://postgres:sua_senha@postgres:5432/pdimaker_prod
# Redis
REDIS_PASSWORD=sua_senha_redis
# JWT
JWT_SECRET=seu_jwt_secret
# NextAuth
NEXTAUTH_SECRET=gere_uma_string_aleatoria_longa_32_caracteres
NEXTAUTH_URL=https://pdimaker.com.br
# Google OAuth (COLE AQUI!)
GOOGLE_CLIENT_ID=123456789-abcdefghijklmnop.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-abc123def456ghi789jkl
# URLs
FRONTEND_URL=https://pdimaker.com.br
NEXT_PUBLIC_API_URL=https://api.pdimaker.com.br
✅ Checklist Final
- Projeto criado no Google Cloud Console
- OAuth Consent Screen configurado
- Credenciais OAuth criadas
- Client ID copiado para o
.env - Client Secret copiado para o
.env - NEXTAUTH_SECRET gerado e adicionado
- Redirect URI configurado no Google Console
- Container reiniciado
- Login testado com sucesso
Agora sim! O login com Google vai funcionar! 🚀