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.
https://{your-domain}/?social_login={provider}
Ejemplos:
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=lineLa mayoría de los proveedores requieren HTTPS y rechazarán redirecciones http://.
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).
Algunos proveedores permiten que los usuarios rechacen compartir su correo electrónico. SESLP puede recurrir a identificadores estables del proveedor para vincular cuentas.
/wp-content/SESLP-debug.log/wp-content/debug.log (WP_DEBUG_LOG = true)/wp-content/SESLP-debug.log (registro de depuración de SESLP)/wp-content/debug.log (WP_DEBUG_LOG = true)[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 SESLPr********@g****.com)
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"}
| 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 |
Expande cada proveedor a continuación y pega el contenido de la guía en español que hayas preparado para ese proveedor.
openid email profilehttps://{domain}/?social_login=google(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.
(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
(7) Configura los Scopes
openid, email, profile(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.
(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.
(1) Administrador de WP → pestaña SESLP Settings → Google.
(2) Pega el Client ID / Client Secret → Guardar.
(3) Haz una prueba real con el botón de inicio de sesión de Google en el frontend del sitio.
(1) Comprueba pantalla de consentimiento OAuth → estado de publicación.
(2) Para pasar de prueba a producción:
(3) Tras pasar a producción, todas las cuentas de Google podrán iniciar sesión.
(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)https://{domain}/?social_login=googlehttps://{domain}/?social_login=facebookpublic_profile, emailopenid.(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:
https://{domain}/?social_login=facebook(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
(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
En la parte superior o en la sección de configuración de la app, cambia el App Mode: Development → Live
(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
(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
https://{domain}/?social_login=linkedinopenid, profile, emailr_liteprofile, r_emailaddress).(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:
MySite LinkedIn Login(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
(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 IDprofile → nombre, foto, titular, etc.email → dirección de correo electrónico(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:
https://localhost:3000/?social_login=linkedinhttps://staging.example.com/?social_login=linkedinhttps://example.com/?social_login=linkedin(5) Haz clic en Save
(1) En la pestaña Auth, encuentra:
(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:
| 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)
(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.logopenid profile email (sin scopes heredados)Nota:
https://{domain}/?social_login=navername), correo electrónico (email)(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:
MySite Naver LoginNaver Login (네아로)https://example.comhttps://example.com/?social_login=naver(5) Acepta los términos → Register
Nota:
(1) Ve a My Applications
(2) Haz clic en la app → copia Client ID y Client Secret
(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
| Dato | Scope | Nota |
|---|---|---|
| Nombre | name |
Predeterminado |
| Correo electrónico | email |
Predeterminado |
| Género, cumpleaños | Separado | Requiere revisión |
email = null → usa vinculación basada en ID(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.logNota:
name, email) está disponible sin revisión.https://{domain}/?social_login=kakaoprofile_nickname, profile_image, account_emailaccount_email disponible solo tras verificación de identidad o negocio(1) Ve a Kakao Developers
→ https://developers.kakao.com/
(2) Inicia sesión → My Applications → Add New App
(3) Introduce:
(4) Guardar
(1) Product Settings > Kakao Login
(2) Activar Enable Kakao Login → ON
(3) Registrar Redirect URI
https://{domain}/?social_login=kakao(4) El dominio debe coincidir con el dominio de la plataforma
(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
(1) App Settings > Platform
(2) Register Web Platform
(3) Dominio del sitio: https://{domain}
(4) Guardar → debe coincidir con el dominio del Redirect URI
(1) Product Settings > Security
(2) Use Client Secret → ON
(3) Generate Secret → copiar valor
(4) Activation Status → Active
(5) Guardar
Importante: debes activarlo después de generarlo
(1) App Keys
(2) Copiar REST API Key → usar como Client ID
(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
(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 permitido → solo HTTPS
Logs:
/wp-content/SESLP-debug.log/wp-content/debug.loghttps://{domain}/?social_login=lineopenid, profile, email(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:
LINE LoginSouth Korea, Japan)(7) Aceptar términos → Create
(1) Ve a OpenID Connect en el menú izquierdo
(2) Haz clic en Apply junto a Email address permission
(3) Completa la solicitud:
(4) El scope email solo funciona tras la aprobación
→ la aprobación suele tardar 1–3 días hábiles
(1) Ve a LINE Login en el menú izquierdo
(2) Introduce Callback URL:
→ https://{domain}/?social_login=line
(3) Se requiere coincidencia exacta:
https:// (HTTP no permitido)(4) Haz clic en Save
(5) Cambia el estado del canal a Published
(1) Parte superior del canal o Basic settings
(2) Channel ID → SESLP Client ID
Channel Secret → SESLP Client Secret
(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
(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 permitido → HTTPS 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.logNota: SESLP es totalmente compatible con