Este documento explica cómo configurar cada proveedor de inicio de sesión social (Google, Facebook, LinkedIn, Naver, Kakao y LINE) en el plugin Simple Easy Social Login (SESLP).

Todos los inicios de sesión se basan en OAuth 2.0 / OpenID Connect (OIDC).
Debes crear una aplicación (cliente) en la consola de cada proveedor e introducir el Client ID / Client Secret en SESLP.


🔧 Guía de configuración común

1) Regla de Redirect URI:

https://{your-domain}/?social_login={provider}

Ejemplos:

2) HTTPS es obligatorio.

La mayoría de los proveedores requieren HTTPS y rechazarán redirecciones http://.

3) Coincidencia exacta

La Redirect URI registrada en la consola debe coincidir al 100 % con la que SESLP envía (protocolo, subdominio, ruta, barra final y cadena de consulta).

4) Es posible que el correo electrónico no esté disponible

Algunos proveedores permiten que los usuarios rechacen compartir su correo electrónico. SESLP puede recurrir a identificadores estables del proveedor para vincular cuentas.

5) Dónde revisar los registros

🐞 Registro de depuración y solución de problemas

Cómo leer los registros de depuración de SESLP

Ubicación del archivo de registro

  • /wp-content/SESLP-debug.log (registro de depuración de SESLP)
  • /wp-content/debug.log (WP_DEBUG_LOG = true)

Formato del registro

[YYYY-MM-DD HH:MM:SS Z] [LEVEL] Message {"key":"value",...}
  • Z: UTC o la hora local de WordPress (por ejemplo, KST) — seleccionable en la configuración de SESLP
  • Privacidad: los correos electrónicos, tokens y secretos se ocultan automáticamente (ejemplo: r********@g****.com)

Registros del flujo OAuth (comunes)

1) Inicio de OAuth

[DEBUG] State created {"provider":"google","state":"906****23","ttl":"10min"}

Significado: se creó un token state para la protección CSRF. ttl es válido durante 10 minutos.

2) Callback activado

[DEBUG] Auth route triggered {"provider":"google","has_code":1}

Significado: se entró en el callback. has_code:1 → se recibió el valor code de OAuth.

3) Validación de state

Correcto:

[DEBUG] State validated {"provider":"google","state":"906****23"}

Error:

[WARNING] State validation failed: not found/expired {"provider":"google","state":"906****23"}

4) Intercambio de token

[DEBUG] Token response (google) {"has_access_token":1}

Significado: el token se obtuvo correctamente.

Error:

[ERROR] Token request failed (google) {"error":"..."}

5) Solicitud de información del usuario

[ERROR] Userinfo request failed (google)
[WARNING] Invalid userinfo (google)

6) Vinculador de usuario

[DEBUG] Linker: signing in user {"user_id":45,"provider":"google","created":0}
[INFO]  Login success (google) {"user_id":45,"email":"r********@g****.com"}

7) Redirección

[DEBUG] Redirect decision {"mode":"profile","user_id":45,"url":"https://example.com/wp-admin/profile.php"}

Tabla de referencia rápida

Mensaje de registro (resumen) Causa probable Acción
State validation failed Tiempo agotado, cambio de pestaña, solicitud duplicada Reintenta rápidamente, usa modo privado
Token request failed Client ID/Secret/Redirect incorrectos, solicitud bloqueada Revisa la consola de desarrollo, el firewall y la hora del servidor
Userinfo invalid Falta algún scope o el correo es privado Añade los scopes email, profile y solicita el consentimiento del usuario
User create failed Conflicto de cuenta o restricción de WordPress Comprueba usuarios existentes y reglas multisitio
Redirect missing Retorno anticipado en el código Asegúrate de que la clase Redirect se ejecute después del callback

Información útil para incluir en informes de errores

  • Líneas de registro relevantes (con datos ocultos)
  • Proveedor utilizado (Google/Naver/etc.)
  • Modo de redirección / URL personalizada
  • Estado del registro de depuración
  • Entorno de WordPress (sitio único, multisitio, plugins de caché)

🌍 Guías por proveedor

Expande cada proveedor a continuación y pega el contenido de la guía en español que hayas preparado para ese proveedor.


Google
  • Scopes recomendados: openid email profile
  • Regla de Redirect URI: https://{domain}/?social_login=google

1) Preparación (lista de verificación obligatoria)

(1) HTTPS recomendado / prácticamente obligatorio (usa certificados de desarrollo de confianza en entornos locales).

(2) La Redirect URI debe coincidir exactamente al 100 % con el valor registrado en la consola. Ej.: https://example.com/?social_login=google

(3) En modo de prueba, solo los usuarios de prueba pueden iniciar sesión (hasta 100 usuarios).

(4) Si usas URLs de inicio de la app, política de privacidad o términos, puede ser necesario registrar los dominios de la app (Authorized domains) y realizar la verificación de propiedad.

2) Configuración del proyecto / pantalla de consentimiento

(1) Accede a Google Cloud Console.
https://console.cloud.google.com/apis/credentials

(2) Selecciona el proyecto en la parte superior → Crear nuevo proyecto (si es necesario).

(3) En la barra lateral, ve a APIs y servicios → Pantalla de consentimiento OAuth.

(4) Selecciona el tipo de usuario: normalmente Externo.

(5) Introduce la información de la app: nombre de la app, correo de soporte al usuario y, opcionalmente, logotipo.

(6) Sección de dominio de la app

  • Introduce la URL de inicio de la app, la URL de la política de privacidad y la URL de los términos del servicio.
  • Añade el dominio raíz (por ejemplo, example.com) a Authorized domainsGuardar
  • Si es necesario, realiza la verificación de propiedad del dominio mediante Search Console.

(7) Configura los Scopes

  • Recomendados: openid, email, profile
  • Los scopes sensibles o restringidos pueden requerir revisión antes de pasar a producción.

(8) Añade usuarios de prueba (correos electrónicos autorizados para iniciar sesión en modo de prueba).

(9) Guardar.

Nota: Usar solo los scopes básicos (openid email profile) suele permitir operar (publicar) sin revisión.

3) Crear cliente OAuth (aplicación web)

(1) Barra lateral: APIs y servicios → Credenciales.

(2) Arriba: + Crear credenciales → ID de cliente OAuth.

(3) Tipo de aplicación: Aplicación web.

(4) Introduce un nombre identificable (por ejemplo, SESLP – Front).

(5) Añade las Authorized redirect URIs

  • https://{domain}/?social_login=google

(6) Haz clic en Crear y copia el Client ID / Client Secret mostrado.

(Opcional) Authorized JavaScript origins normalmente no son necesarios para este plugin, ya que utiliza code grant.

4) Configuración en WordPress (plugin)

(1) Administrador de WP → pestaña SESLP Settings → Google.

(2) Pega el Client ID / Client SecretGuardar.

(3) Haz una prueba real con el botón de inicio de sesión de Google en el frontend del sitio.

5) Cambiar de prueba a producción

(1) Comprueba pantalla de consentimiento OAuth → estado de publicación.

(2) Para pasar de prueba a producción:

  • Verifica que la información de la app (logo, dominio de la app, políticas y términos) sea correcta.
  • Elimina los scopes innecesarios y conserva solo los necesarios.
  • Envía una solicitud de revisión si utilizas scopes sensibles.

(3) Tras pasar a producción, todas las cuentas de Google podrán iniciar sesión.

6) Errores comunes y soluciones

(1) redirect_uri_mismatch

→ Ocurre si la Redirect URI registrada en la consola y la URI real de la solicitud difieren aunque sea mínimamente (incluyendo protocolo, subdominio, barra o query). Corrígelo para que coincidan exactamente.

(2) access_denied / disallowed_useragent

→ Restricciones del navegador o del entorno dentro de la app. Inténtalo de nuevo en un navegador normal.

(3) invalid_client / unauthorized_client

→ Error tipográfico en el Client ID/Secret o problema con el estado de la app (eliminada/desactivada). Vuelve a emitir o revisar las credenciales.

(4) El correo electrónico está vacío

→ Comprueba si el scope email está incluido, si la pantalla de consentimiento se muestra correctamente y la configuración de visibilidad/seguridad del correo en la cuenta. Explica claramente el uso del permiso de correo electrónico en la pantalla de consentimiento.

Revisar registros:

  • wp-content/SESLP-debug.log (depuración del plugin activada)
  • wp-content/debug.log (WP_DEBUG, WP_DEBUG_LOG = true)

7) Lista de verificación resumida

  • Pantalla de consentimiento OAuth: configurar información de la app / dominio / políticas / términos / scopes / usuarios de prueba
  • Credenciales: crear cliente de aplicación web
  • Registrar Redirect URI: https://{domain}/?social_login=google
  • SESLP: guardar Client ID/Secret y probar el inicio de sesión
  • Cambiar el estado de publicación al pasar a producción (enviar revisión si es necesario)

Facebook
  • Redirect URI: https://{domain}/?social_login=facebook
  • Permisos solicitados (recomendados): public_profile, email
  • Facebook no utiliza openid.

1) Crear la app y añadir el producto

(1) Ve a Meta for Developers → inicia sesión
https://developers.facebook.com/

(2) Haz clic en Create App → selecciona un tipo general (por ejemplo, Consumer) → crea la app

(3) En la barra lateral izquierda, añade Facebook Login desde Products

(4) Ve a Settings → revisa los siguientes elementos:

  • Client OAuth Login: ON
  • Web OAuth Login: ON
  • Valid OAuth Redirect URIs:
  • Añade https://{domain}/?social_login=facebook
  • (Opcional) Enforce HTTPS: recomendado por defecto

2) Configuración básica de la app (App Settings → Basic)

(1) App Domains: example.com (el dominio de la URL de políticas/términos/inicio de la app)

(2) Privacy Policy URL: página de política accesible públicamente

(3) Terms of Service URL: página de términos accesible públicamente

(4) User Data Deletion: proporciona una URL con instrucciones o un endpoint para eliminación de datos

(5) Category / App Icon: configúralos adecuadamente y luego Save

3) Scopes (permisos) y revisión de la app

(1) Los permisos básicos necesarios para el inicio de sesión estándar son public_profile; el correo electrónico opcional es email

(2) En la mayoría de los casos, email puede usarse sin revisión, aunque puede haber excepciones según la región o la cuenta

(3) Los permisos avanzados como los relacionados con páginas o anuncios requieren App Review y Business Verification

4) Cambiar de modo (Development → Live)

En la parte superior o en la sección de configuración de la app, cambia el App Mode: Development → Live

5) Lista de verificación antes de pasar a Live

  • Preparar Privacy Policy / Terms / Data Deletion URL
  • Introducir correctamente las Valid OAuth Redirect URIs
  • Eliminar permisos innecesarios y solicitar solo los requeridos
  • (Si es necesario) Completar App Review / Business Verification

6) Configuración de WordPress (SESLP)

(1) Administrador de WP → SESLP Settings → Facebook

(2) Introduce App ID / App Secret → Guardar

(3) Haz una prueba con el botón de inicio de sesión de Facebook en el frontend

7) Solución de problemas

(1) Can't Load URL / error de redirect_uri

→ Asegúrate de que se haya registrado exactamente la misma URI en Valid OAuth Redirect URIs (incluyendo protocolo, subdominio, barra y cadena de consulta)

(2) email null

→ El usuario no ha registrado un correo electrónico en Facebook o lo tiene como privado. Prepara una lógica de vinculación de cuentas basada en ID y explica claramente el uso del permiso de correo electrónico en la pantalla de consentimiento

(3) Errores relacionados con permisos

→ Si el scope solicitado supera el rango básico, se requiere App Review / Business Verification

(4) No se puede cambiar a Live

→ Si la URL de políticas/términos/instrucciones de eliminación de datos falta o no es pública. Debes proporcionar una URL pública


LinkedIn
  • Redirect URI: https://{domain}/?social_login=linkedin
  • Configuración requerida: habilitar OpenID Connect (OIDC)
  • Scopes recomendados: openid, profile, email
  • LinkedIn está eliminando progresivamente los scopes heredados (r_liteprofile, r_emailaddress).
  • Las nuevas aplicaciones deben usar los scopes estándar de OIDC.

1) Crear una aplicación

(1) Ve a LinkedIn Developers Console

https://www.linkedin.com/developers/apps

(2) Inicia sesión con tu cuenta de LinkedIn

(3) Haz clic en Create app

(4) Completa los campos requeridos:

  • Nombre de la app: p. ej., MySite LinkedIn Login
  • Página de LinkedIn: seleccionar o “None”
  • Logo de la app: PNG/JPG de al menos 100×100
  • URL de política de privacidad / correo empresarial: válidos y públicos

(5) Haz clic en Create app

Modo de desarrollo por defecto → permite probar inmediatamente el inicio de sesión con openid, profile, email sin publicar

2) Habilitar OpenID Connect (OIDC)

(1) Ve a la pestaña Products

(2) Busca Sign In with LinkedIn using OpenID Connect

(3) Haz clic en Add product → aprobación inmediata

(4) La configuración de OIDC aparecerá en la pestaña Auth

Scopes OIDC requeridos

  • openid → token de ID
  • profile → nombre, foto, titular, etc.
  • email → dirección de correo electrónico

3) Configuración OAuth 2.0 (pestaña Auth)

(1) Ve a Auth → OAuth 2.0 settings

(2) Añade en Redirect URLs:

https://{domain}/?social_login=linkedin

(3) Se requiere coincidencia exacta (protocolo, subdominio, barra, query)

(4) Registra varias si es necesario:

  • Local: https://localhost:3000/?social_login=linkedin
  • Staging: https://staging.example.com/?social_login=linkedin
  • Producción: https://example.com/?social_login=linkedin

(5) Haz clic en Save

4) Obtener Client ID / Client Secret

(1) En la pestaña Auth, encuentra:

  • Client ID
  • Client Secret

(2) Administrador de WordPress → SESLP Settings → LinkedIn

(3) Pega ambos → Guardar

(4) Prueba con el botón de inicio de sesión de LinkedIn en el frontend

Seguridad:

  • Nunca expongas el Client Secret
  • Usa Regenerate secret si se ve comprometido

5) Explicación de los scopes

Scope Descripción Nota
openid Devuelve el token de ID estándar de OIDC Requerido
profile Nombre, foto, titular, etc. Requerido
email Dirección de correo electrónico Requerido

Scopes heredados (r_liteprofile, r_emailaddress)

  • Obsoletos después de 2024
  • No disponibles para nuevas apps

6) Solución de problemas

(1) redirect_uri_mismatch

→ Diferencias mínimas en la URI → asegurar coincidencia 100%

(2) invalid_client

→ ID/Secret incorrectos o app inactiva → verificar o regenerar

(3) email NULL

→ Usuario rechazó o falta el scope email → explicar uso en la pantalla de consentimiento

(4) insufficient_scope

→ Scope solicitado no aprobado → verificar que OIDC esté habilitado

(5) OIDC no habilitado

→ Falta Sign In with LinkedIn using OpenID Connect en Products

Logs:

  • /wp-content/SESLP-debug.log
  • /wp-content/debug.log

7) Lista de verificación resumida

  • App creada
  • Producto OpenID Connect añadido
  • Redirect URI registrado correctamente
  • Client ID/Secret guardados en SESLP
  • Scopes: openid profile email (sin scopes heredados)
  • Prueba realizada en frontend HTTPS

Nota:

  • SESLP es totalmente compatible con el flujo OIDC.
  • OAuth 2.0 heredado ya no está soportado.
  • Usa siempre OpenID Connect en nuevas integraciones.

Naver
  • Redirect URI: https://{domain}/?social_login=naver
  • Scopes recomendados: perfil básico (name), correo electrónico (email)
  • Naver utiliza la API Naver Login (네아로), HTTPS es obligatorio

1) Registro de la aplicación

(1) Ve a Naver Developer Center

https://developers.naver.com/apps/

(2) Inicia sesión con tu cuenta de Naver

(3) Haz clic en Application → Register Application

(4) Completa los campos requeridos:

  • Nombre de la aplicación: p. ej., MySite Naver Login
  • Uso de API: selecciona Naver Login (네아로)
  • Add Environment → Web
  • Service URL: https://example.com
  • Callback URL: https://example.com/?social_login=naver

(5) Acepta los términos → Register

Nota:

  • HTTPS obligatorio → HTTP no está permitido
  • Los subdominios deben registrarse por separado

2) Obtener Client ID / Client Secret

(1) Ve a My Applications

(2) Haz clic en la app → copia Client ID y Client Secret

3) Configuración de WordPress (plugin)

(1) Administrador de WP → SESLP Settings → Naver

(2) Pega el Client ID / Client Secret

(3) Asegúrate de que la Redirect URI coincida exactamente: https://{domain}/?social_login=naver

(4) Guardar → prueba con el botón de inicio de sesión de Naver en el frontend

4) Permisos y provisión de datos

Dato Scope Nota
Nombre name Predeterminado
Correo electrónico email Predeterminado
Género, cumpleaños Separado Requiere revisión
  • Los usuarios pueden aceptar o rechazar en la pantalla de consentimiento
  • Si el correo es rechazado → email = null → usa vinculación basada en ID
  • Los datos sensibles requieren revisión de la app por parte de Naver

5) Solución de problemas

(1) Redirect URI mismatch

→ Incluso una pequeña diferencia provoca el error → asegúrate de una coincidencia del 100%

(2) Error HTTP

→ Debe usarse HTTPS

(3) Error de subdominio

→ Registra cada subdominio por separado

(4) email NULL

→ El usuario rechazó o el correo es privado → prepara lógica basada en ID

(5) Se necesita revisión

→ Inicio de sesión básico: sin revisión
→ Datos adicionales: requieren revisión

Logs:

  • /wp-content/SESLP-debug.log
  • /wp-content/debug.log

6) Lista de verificación resumida

  • App registrada en Naver Developer Center
  • Callback URL registrada correctamente
  • HTTPS en uso
  • Subdominios registrados por separado (si es necesario)
  • Client ID/Secret guardados en SESLP
  • Comportamiento de aceptación/rechazo del correo probado
  • Prueba de inicio de sesión en frontend completada

Nota:

  • SESLP es totalmente compatible con Naver Login (네아로).
  • El inicio de sesión básico (name, email) está disponible sin revisión.

Kakao
  • Redirect URI: https://{domain}/?social_login=kakao
  • Scopes recomendados: profile_nickname, profile_image, account_email
  • account_email disponible solo tras verificación de identidad o negocio
  • HTTPS obligatorio, activación de Client Secret obligatoria

1) Crear aplicación

(1) Ve a Kakao Developers

https://developers.kakao.com/

(2) Inicia sesión → My Applications → Add New App

(3) Introduce:

  • Nombre de la app, nombre de la empresa
  • Categoría
  • Aceptar la política de operación

(4) Guardar

2) Activar Kakao Login

(1) Product Settings > Kakao Login

(2) Activar Enable Kakao LoginON

(3) Registrar Redirect URI

  • https://{domain}/?social_login=kakao
  • Guardar

(4) El dominio debe coincidir con el dominio de la plataforma

3) Elementos de consentimiento (Scopes)

(1) Consent Items

(2) Añadir y configurar:

Scope Descripción Tipo de consentimiento Nota
profile_nickname Apodo Requerido/Opcional Básico
profile_image Imagen de perfil Requerido/Opcional Básico
account_email Correo electrónico Opcional Requiere verificación

(3) Indica claramente el propósito de cada uno

(4) Guardar

Nota: Los scopes sensibles requieren verificación

4) Registrar plataforma web

(1) App Settings > Platform

(2) Register Web Platform

(3) Dominio del sitio: https://{domain}

(4) Guardar → debe coincidir con el dominio del Redirect URI

5) Seguridad – Generar y activar Client Secret

(1) Product Settings > Security

(2) Use Client SecretON

(3) Generate Secret → copiar valor

(4) Activation StatusActive

(5) Guardar

Importante: debes activarlo después de generarlo

6) Obtener REST API Key (Client ID)

(1) App Keys

(2) Copiar REST API Key → usar como Client ID

7) Configuración en WordPress

(1) WP Admin → SESLP Settings → Kakao

(2) Client ID = REST API Key
Client Secret = Secret generado

(3) Guardar

(4) Probar con el botón de inicio de sesión de Kakao

8) Solución de problemas

(1) redirect_uri_mismatch → se requiere coincidencia del 100%

(2) invalid_client → Secret no activado o error tipográfico

(3) email vacío → usuario lo rechazó o no está verificado

(4) Domain mismatch → plataforma vs Redirect URI

(5) HTTP no permitidosolo HTTPS

Logs:

  • /wp-content/SESLP-debug.log
  • /wp-content/debug.log

9) Lista de verificación resumida

  • Kakao Login activado
  • Redirect URI registrada
  • Dominio de la plataforma web registrado
  • Elementos de consentimiento configurados
  • Client Secret generado y activado
  • REST API Key / Secret guardados en SESLP
  • Probado en frontend HTTPS

LINE
  • Redirect URI: https://{domain}/?social_login=line
  • Requerido: activar OpenID Connect y solicitar y obtener aprobación para permiso de email
  • Scopes recomendados: openid, profile, email
  • HTTPS obligatorio, el permiso de email requiere aprobación

1) Crear proveedor y canal

(1) Accede a LINE Developers Console

https://developers.line.biz/console/

(2) Inicia sesión con cuenta de negocio de LINE (no se permite cuenta personal)

(3) Haz clic en Create a new provider → introduce nombre → Create

(4) Dentro del proveedor → pestaña Channels

(5) Selecciona Create a LINE Login channel

(6) Configurar:

  • Channel type: LINE Login
  • Provider: seleccionar proveedor creado
  • Region: país objetivo (por ejemplo, South Korea, Japan)
  • Name / description / icon: se muestran en la pantalla de consentimiento

(7) Aceptar términos → Create

2) Activar OpenID Connect y solicitar permiso de email

(1) Ve a OpenID Connect en el menú izquierdo

(2) Haz clic en Apply junto a Email address permission

(3) Completa la solicitud:

  • URL de política de privacidad (debe ser pública)
  • Subir captura de la política de privacidad
  • Enviar

(4) El scope email solo funciona tras la aprobación
→ la aprobación suele tardar 1–3 días hábiles

3) Registrar Callback URL y publicar canal

(1) Ve a LINE Login en el menú izquierdo

(2) Introduce Callback URL:

https://{domain}/?social_login=line

(3) Se requiere coincidencia exacta:

  • Protocolo: https:// (HTTP no permitido)
  • Dominio, ruta y query deben coincidir al 100%

(4) Haz clic en Save

(5) Cambia el estado del canal a Published

  • Modo desarrollo: solo pruebas
  • Publicado: servicio en producción

4) Obtener Channel ID / Secret

(1) Parte superior del canal o Basic settings

(2) Channel ID → SESLP Client ID
Channel Secret → SESLP Client Secret

5) Configuración en WordPress

(1) WP Admin → SESLP Settings → LINE

(2) Client ID ← Channel ID
Client Secret ← Channel Secret

(3) Guardar

(4) Probar con el botón de inicio de sesión de LINE en el frontend

6) Solución de problemas

(1) redirect_uri_mismatch → incluso pequeñas diferencias causan error → coincidencia 100%

(2) invalid_client → error en Secret o canal no publicado

(3) email NULL → permiso de email no aprobado o usuario lo rechazó

(4) HTTP no permitidoHTTPS obligatorio (localhost HTTPS permitido)

(5) Limitación en modo desarrollo → solo cuentas de prueba pueden iniciar sesión

Logs:

  • /wp-content/SESLP-debug.log
  • /wp-content/debug.log

7) Lista de verificación resumida

  • Proveedor y canal LINE Login creados con cuenta empresarial
  • Permiso de email solicitado y aprobado
  • Callback URL registrada correctamente
  • Uso de HTTPS y estado publicado
  • Channel ID/Secret guardados en SESLP
  • Prueba de inicio de sesión completada en frontend

Nota: SESLP es totalmente compatible con

  • LINE Login v2.1 + OpenID Connect.
  • La recopilación de email requiere aprobación previa.