Este documento explica como configurar cada provedor de login social (Google, Facebook, LinkedIn, Naver, Kakao, LINE) no plugin Simple Easy Social Login (SESLP).
Todos os logins são baseados em OAuth 2.0 / OpenID Connect (OIDC).
Você precisa criar um app (cliente) no console de cada provedor e inserir o Client ID / Client Secret no SESLP.
https://{your-domain}/?social_login={provider}
Exemplos:
https://example.com/?social_login=googlehttps://example.com/?social_login=facebookhttps://example.com/?social_login=linkedinhttps://example.com/?social_login=naverhttps://example.com/?social_login=kakaohttps://example.com/?social_login=lineA maioria dos provedores exige HTTPS e rejeitará redirecionamentos com http://.
A Redirect URI no console deve corresponder 100% ao que o SESLP envia (protocolo, subdomínio, caminho, barra final e query string).
Alguns provedores permitem que os usuários neguem o compartilhamento do e-mail. O SESLP pode usar IDs estáveis do provedor para vincular contas.
/wp-content/SESLP-debug.log/wp-content/debug.log (WP_DEBUG_LOG = true)/wp-content/SESLP-debug.log (log de depuração do SESLP)/wp-content/debug.log (WP_DEBUG_LOG = true)[YYYY-MM-DD HH:MM:SS Z] [LEVEL] Message {"key":"value",...}
Z: UTC ou horário local do WordPress (ex.: KST) — selecionável nas configurações do SESLPr********@g****.com)
1) Início do OAuth
[DEBUG] State created {"provider":"google","state":"906****23","ttl":"10min"}
Significado: foi criado um token state para proteção CSRF. ttl é válido por 10 minutos.
2) Callback acionado
[DEBUG] Auth route triggered {"provider":"google","has_code":1}
Significado: o callback foi acionado. has_code:1 → o code do OAuth foi recebido.
3) Validação do state
Sucesso:
[DEBUG] State validated {"provider":"google","state":"906****23"}
Falha:
[WARNING] State validation failed: not found/expired {"provider":"google","state":"906****23"}
4) Troca de token
[DEBUG] Token response (google) {"has_access_token":1}
Significado: token obtido.
Falha:
[ERROR] Token request failed (google) {"error":"..."}
5) Requisição de informações do usuário
[ERROR] Userinfo request failed (google)
[WARNING] Invalid userinfo (google)
6) Vinculação do usuário
[DEBUG] Linker: signing in user {"user_id":45,"provider":"google","created":0}
[INFO] Login success (google) {"user_id":45,"email":"r********@g****.com"}
7) Redirecionamento
[DEBUG] Redirect decision {"mode":"profile","user_id":45,"url":"https://example.com/wp-admin/profile.php"}
| Mensagem de log (resumo) | Causa provável | Ação |
|---|---|---|
| State validation failed | Timeout, troca de aba, requisição duplicada | Tente novamente rapidamente, use modo privado |
| Token request failed | Client ID/secret/redirect incorreto, requisição bloqueada | Verifique o console do desenvolvedor, firewall e horário do servidor |
| Userinfo invalid | Scope ausente ou e-mail privado | Adicione os scopes email, profile e solicite consentimento do usuário |
| User create failed | Conflito de conta ou restrição do WordPress | Verifique usuários existentes e regras de multisite |
| Redirect missing | Retorno antecipado no código | Garanta que a classe Redirect seja executada após o callback |
Expanda cada provedor abaixo e cole o conteúdo do guia em inglês que você preparou para esse provedor.
openid email profilehttps://{domain}/?social_login=google(1) HTTPS recomendado/essencial (use certificados de desenvolvimento confiáveis para ambientes locais).
(2) A Redirect URI deve corresponder exatamente 100% ao valor registrado no console. Ex.: https://example.com/?social_login=google
(3) No modo de teste, apenas usuários de teste podem fazer login (até 100 usuários).
(4) Ao usar URLs de homepage/política de privacidade/termos do app, pode ser necessário registrar domínios do app (Authorized domains) e fazer verificação de propriedade.
(1) Acesse o Google Cloud Console.
https://console.cloud.google.com/apis/credentials
(2) Selecione o projeto no topo → Criar novo projeto (se necessário).
(3) Barra lateral: vá para APIs e Serviços → Tela de consentimento OAuth.
(4) Selecione o Tipo de usuário: normalmente Externo.
(5) Insira as Informações do app: nome do app, e-mail de suporte, (opcional) logotipo.
(6) Seção Domínio do app
(7) Configure os Escopos
openid, email, profile(8) Adicione usuários de teste (e-mails autorizados no modo de teste).
(9) Salvar.
Observação: Usando apenas os escopos básicos (openid email profile), geralmente é possível operar (publicar) sem revisão.
(1) Barra lateral: APIs e Serviços → Credenciais.
(2) Topo: + Criar credenciais → ID do cliente OAuth.
(3) Tipo de aplicação: Aplicação Web.
(4) Insira um Nome identificável (ex.: SESLP – Front).
(5) Adicione URIs de redirecionamento autorizadas
https://{domain}/?social_login=google(6) Clique em Criar e copie o Client ID / Client Secret exibido.
(Opcional) Origins JavaScript autorizadas geralmente não são necessárias para este plugin (code grant).
(1) WP Admin → SESLP Settings → Google.
(2) Cole Client ID / Client Secret → Salvar.
(3) Teste com o botão de login do Google no frontend.
(1) Verifique Tela de consentimento OAuth → Status de publicação.
(2) Para mudar para produção:
(3) Após a publicação, todas as contas Google poderão fazer login.
(1) redirect_uri_mismatch
→ Ocorre quando a URI registrada e a URI enviada diferem (protocolo, subdomínio, barra, query). Ajuste para corresponder exatamente.
(2) access_denied / disallowed_useragent
→ Restrição de ambiente (browser/app). Tente em um navegador padrão.
(3) invalid_client / unauthorized_client
→ Erro no Client ID/Secret ou status do app. Verifique ou regenere.
(4) Email vazio
→ Verifique o escopo email, consentimento e configurações de privacidade da conta.
Verificar logs:
wp-content/SESLP-debug.log (debug do plugin ativado)wp-content/debug.log (WP_DEBUG, WP_DEBUG_LOG = true)https://{domain}/?social_login=facebookpublic_profile, emailopenid.(1) Acesse Meta for Developers → Faça login
https://developers.facebook.com/
(2) Clique em Create App → Selecione um tipo geral (ex.: Consumer) → Criar app
(3) No menu lateral esquerdo, adicione Facebook Login em Products
(4) Vá em Settings → Verifique os itens:
https://{domain}/?social_login=facebook(1) App Domains: example.com
(2) URL da Política de Privacidade: página pública acessível
(3) URL dos Termos de Serviço: página pública acessível
(4) Exclusão de dados do usuário: fornecer URL ou endpoint
(5) Categoria / Ícone do app: configurar → Salvar
(1) Permissão básica: public_profile; e-mail opcional: email
(2) Na maioria dos casos, email pode ser usado sem revisão
(3) Permissões avançadas exigem App Review e Business Verification
Altere App Mode: Development → Live
(1) WP Admin → SESLP Settings → Facebook
(2) Inserir App ID / App Secret → Salvar
(3) Testar com o botão de login do Facebook
(1) Can't Load URL / erro de redirect_uri
→ Verifique correspondência exata da URI
(2) email null
→ Usuário não possui e-mail ou é privado → usar lógica baseada em ID
(3) Erros de permissão
→ Pode exigir revisão/verificação
(4) Não é possível ativar Live
→ URLs obrigatórias ausentes ou não públicas
https://{domain}/?social_login=linkedinopenid, profile, email(1) Acesse LinkedIn Developers Console
→ https://www.linkedin.com/developers/apps
(2) Faça login
(3) Clique em Create app
(4) Preencha:
(5) Criar app
(1) Aba Products
(2) Adicionar Sign In with LinkedIn using OpenID Connect
(1) Auth → OAuth 2.0 settings
(2) Adicionar Redirect URI:
→ https://{domain}/?social_login=linkedin
(1) Aba Auth
(2) Copiar credenciais
| Scope | Descrição | Nota |
|---|---|---|
openid |
Token OIDC | Obrigatório |
profile |
Dados do usuário | Obrigatório |
email |
Obrigatório |
(1) redirect_uri_mismatch
(2) invalid_client
(3) email NULL
(4) insufficient_scope
(5) OIDC não ativado
Nota:
https://{domain}/?social_login=navername), E-mail (email)(1) Acesse o Naver Developer Center
→ https://developers.naver.com/apps/
(2) Faça login com sua conta Naver
(3) Clique em Application → Register Application
(4) Preencha os campos obrigatórios:
MySite Naver LoginNaver Login (네아로)https://example.comhttps://example.com/?social_login=naver(5) Concorde com os termos → Register
Observação:
(1) Vá em My Applications
(2) Clique no app → copie o Client ID e o Client Secret
(1) WP Admin → SESLP Settings → Naver
(2) Cole o Client ID / Client Secret
(3) Certifique-se de que a Redirect URI corresponde exatamente a: https://{domain}/?social_login=naver
(4) Salvar → teste com o botão de login do Naver no frontend
| Dado | Scope | Observação |
|---|---|---|
| Nome | name |
Padrão |
email |
Padrão | |
| Gênero, aniversário | Separado | Requer revisão |
email = null → use vinculação baseada em ID(1) Redirect URI mismatch
→ Mesmo uma pequena diferença causa erro → garanta 100% de correspondência
(2) Erro de HTTP
→ É obrigatório usar HTTPS
(3) Erro de subdomínio
→ Registre cada subdomínio separadamente
(4) email NULL
→ O usuário recusou ou o e-mail é privado → prepare lógica baseada em ID
(5) Revisão necessária
→ Login básico: sem revisão
→ Dados adicionais: requerem revisão
Logs:
/wp-content/SESLP-debug.log/wp-content/debug.logObservação:
name, email) está disponível sem revisão.https://{domain}/?social_login=kakaoprofile_nickname, profile_image, account_emailaccount_email disponível somente após verificação de identidade ou empresarial(1) Acesse Kakao Developers
→ https://developers.kakao.com/
(2) Faça login → My Applications → Add New App
(3) Insira:
(4) Salvar
(1) Product Settings > Kakao Login
(2) Ative Enable Kakao Login → ON
(3) Registrar Redirect URI
https://{domain}/?social_login=kakao(4) O domínio deve corresponder ao domínio da plataforma
(1) Consent Items
(2) Adicione e configure:
| Scope | Descrição | Tipo de consentimento | Observação |
|---|---|---|---|
profile_nickname |
Apelido | Obrigatório/Opcional | Básico |
profile_image |
Imagem de perfil | Obrigatório/Opcional | Básico |
account_email |
Opcional | Requer verificação |
(3) Descreva claramente a finalidade de cada item
(4) Salvar
Observação: Escopos sensíveis exigem verificação
(1) App Settings > Platform
(2) Register Web Platform
(3) Domínio do site: https://{domain}
(4) Salvar → deve corresponder ao domínio da Redirect URI
(1) Product Settings > Security
(2) Use Client Secret → ON
(3) Generate Secret → copie o valor
(4) Activation Status → Active
(5) Salvar
Importante: é preciso ativar após gerar
(1) App Keys
(2) Copie a REST API Key → use como Client ID
(1) WP Admin → SESLP Settings → Kakao
(2) Client ID = REST API Key
Client Secret = Secret gerado
(3) Salvar
(4) Teste com o botão de login do Kakao
(1) redirect_uri_mismatch → é necessária correspondência de 100%
(2) invalid_client → Secret não ativado ou erro de digitação
(3) email vazio → usuário recusou ou não foi verificado
(4) Domain mismatch → diferença entre plataforma e Redirect URI
(5) HTTP proibido → somente HTTPS
Logs:
/wp-content/SESLP-debug.log/wp-content/debug.loghttps://{domain}/?social_login=lineopenid, profile, email(1) Acesse o LINE Developers Console
→ https://developers.line.biz/console/
(2) Faça login com uma conta LINE Business (conta pessoal não é permitida)
(3) Clique em Create a new provider → Digite o nome → Create
(4) Dentro do provider → aba Channels
(5) Selecione Create a LINE Login channel
(6) Configure:
LINE LoginSouth Korea, Japan)(7) Concorde com os termos → Create
(1) Vá para OpenID Connect no menu à esquerda
(2) Clique em Apply ao lado de Email address permission
(3) Preencha a solicitação:
(4) O escopo email só funciona após aprovação
→ A aprovação normalmente leva de 1 a 3 dias úteis
(1) Vá para LINE Login no menu à esquerda
(2) Insira a Callback URL:
→ https://{domain}/?social_login=line
(3) É necessária correspondência exata:
https:// (HTTP não permitido)(4) Clique em Save
(5) Altere o status do channel para Published
(1) No topo do channel ou em Basic settings
(2) Channel ID → Client ID no SESLP
Channel Secret → Client Secret no SESLP
(1) WP Admin → SESLP Settings → LINE
(2) Client ID ← Channel ID
Client Secret ← Channel Secret
(3) Salvar
(4) Teste com o botão de login do LINE no frontend
(1) redirect_uri_mismatch → Mesmo uma pequena diferença gera erro → garanta 100% de correspondência
(2) invalid_client → Erro de digitação no Secret ou channel não publicado
(3) email NULL → Permissão de e-mail não aprovada ou usuário recusou
(4) HTTP não permitido → HTTPS obrigatório (localhost com HTTPS é aceito)
(5) Limite do modo de desenvolvimento → Apenas contas de teste podem fazer login
Logs:
/wp-content/SESLP-debug.log/wp-content/debug.logObservação: O SESLP oferece suporte completo a: