Appearance
Social Login
Visao Geral
Login social via Google e Facebook usando Laravel Socialite. Resolve o desafio multi-tenant com callback centralizado no dominio central — um unico URL de callback registrado nos providers, escalavel para infinitos tenants.
Fluxo
- Usuario clica "Entrar com Google" no tenant (
alfa.decaelo.com.br/login) - Redirecionado para
decaelo.com.br/auth/google/redirect?tenant=alfa - Controller central redireciona para Google OAuth com tenant ID no
state - Google autentica, callback em
decaelo.com.br/auth/google/callback - Controller central:
- Decodifica tenant do state
- Busca/cria usuario dentro do banco do tenant (
$tenant->run()) - Gera signed URL HMAC com expiracao de 5 minutos
- Redireciona para
alfa.decaelo.com.br/auth/social-login?signature=... - Rota no tenant valida assinatura e autentica o usuario
Vinculacao de Contas
- Provider + ID match — login direto
- Email match — auto-link: vincula provider ao usuario existente
- Sem match — cria usuario novo com
profile_completed=false
Rotas
Centrais (dominio principal, fora de tenancy)
| Metodo | Rota | Descricao |
|---|---|---|
| GET | /auth/{provider}/redirect | Redireciona para OAuth do provider |
| GET | /auth/{provider}/callback | Recebe callback, processa login |
Tenant
| Metodo | Rota | Descricao |
|---|---|---|
| GET | /auth/social-login | Autentica via signed URL |
Action
App\Domain\User\Actions\HandleSocialLoginAction — busca por provider_id, auto-link por email, ou cria novo usuario.
Configuracao
Variaveis de Ambiente
env
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT_URL=https://decaelo.com.br/auth/google/callback
FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRET=
FACEBOOK_REDIRECT_URL=https://decaelo.com.br/auth/facebook/callbackGoogle Cloud Console
- Acesse https://console.cloud.google.com/
- APIs & Services > Credentials > Create OAuth 2.0 Client ID
- Authorized redirect URI:
https://decaelo.com.br/auth/google/callback - Copie Client ID e Client Secret para o
.env
Facebook Developers (Passo a Passo Completo)
IMPORTANTE: Este app deve ser exclusivo para login social. Nao misture com o app do WhatsApp Business — a Meta restringe casos de uso mistos.
1. Criar o App
- Acesse https://developers.facebook.com/
- My Apps > Create App
- Tipo: Consumer (ou "Consumidor")
- Nome:
Decaelo Login(ou similar) - Email de contato:
privacidade@decaelo.com.br
2. Adicionar Facebook Login
- No dashboard do app, clique Add Product > Facebook Login > Set Up
- Escolha Web
- Site URL:
https://decaelo.com.br
3. Configurar OAuth
- Va em Facebook Login > Settings (no menu lateral)
- Valid OAuth Redirect URIs:
https://decaelo.com.br/auth/facebook/callback - Deauthorize Callback URL: (opcional)
https://decaelo.com.br/politica-de-privacidade#exclusao-de-dados - Data Deletion Request URL:
https://decaelo.com.br/politica-de-privacidade#exclusao-de-dados - Salve as alteracoes
4. Copiar Credenciais
- Va em Settings > Basic (menu lateral)
- Copie:
- App ID →
FACEBOOK_CLIENT_IDno.env - App Secret →
FACEBOOK_CLIENT_SECRETno.env
- App ID →
- Preencha os campos obrigatorios:
- Privacy Policy URL:
https://decaelo.com.br/politica-de-privacidade - Terms of Service URL:
https://decaelo.com.br/termos-de-uso - App Icon: logo do Decaelo (1024x1024)
- Category: Business and Pages
- Privacy Policy URL:
5. Configurar .env no Servidor
env
FACEBOOK_CLIENT_ID=123456789012345
FACEBOOK_CLIENT_SECRET=abcdef1234567890abcdef1234567890
FACEBOOK_REDIRECT_URL=https://decaelo.com.br/auth/facebook/callback6. Solicitar Aprovacao (Producao)
- Va em App Review > Permissions and Features
- Solicite aprovacao para:
email— necessario para vincular contaspublic_profile— nome e foto do usuario
- Preencha o formulario:
- Instrucoes de teste: veja a secao abaixo
- Video/Screenshots: opcional
- Aguarde aprovacao (geralmente 1-5 dias uteis)
7. Passar para Producao
- No topo do dashboard, mude o toggle de Development para Live
- Confirme que Privacy Policy e Terms of Service estao preenchidos
Formulario de Revisao da Meta
Ao submeter para revisao, use estas respostas:
Instrucoes de acesso:
1. Acesse https://alfa.decaelo.com.br
2. Clique em "Acessar minha conta"
3. Clique em "Continuar com Facebook"
4. Autorize o compartilhamento de dados
5. Voce sera redirecionado para o dashboard
6. No canto inferior esquerdo, clique no nome do usuario > Configuracoes > Perfil
7. Para excluir conta: Configuracoes > Perfil > "Excluir conta"Credenciais: Nao e necessario pagamento. O ambiente de homologacao possui plano com todas as funcionalidades.
Restricoes geograficas: Nenhuma. Acessivel de qualquer pais.
Reviewer Automatico
Para que o reviewer da Meta tenha acesso completo ao primeiro login:
env
META_REVIEWER_EMAIL=email-do-test-user@facebook.comO sistema automaticamente atribui super-admin ao usuario cujo email corresponda a essa variavel.
Google Cloud Console (Passo a Passo)
- Acesse https://console.cloud.google.com/
- Crie ou selecione um projeto
- APIs & Services > OAuth consent screen
- User Type: External
- App name:
Decaelo - Support email:
privacidade@decaelo.com.br - Authorized domains:
decaelo.com.br - Privacy Policy:
https://decaelo.com.br/politica-de-privacidade - Terms of Service:
https://decaelo.com.br/termos-de-uso
- Scopes: adicione
emaileprofile - Credentials > Create Credentials > OAuth 2.0 Client ID
- Application type: Web application
- Authorized redirect URI:
https://decaelo.com.br/auth/google/callback
- Copie Client ID e Client Secret para o
.env:
env
GOOGLE_CLIENT_ID=123456789-abc.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-abcdef123456
GOOGLE_REDIRECT_URL=https://decaelo.com.br/auth/google/callback- Publicar o app: em OAuth consent screen, clique Publish App para sair do modo de teste
Adicionando Novos Providers
- Adicionar provider em
SocialLoginController::ALLOWED_PROVIDERS - Configurar em
config/services.php - Adicionar variaveis
.env - Adicionar botao no
Login.vueeRegister.vue