Social login
El inicio de sesión social permite a los clientes registrarse e iniciar sesión usando su cuenta de Google o Facebook. Elimina la necesidad de crear y recordar una contraseña, lo que acelera el proceso de compra y aumenta el número de registros.
Activar el módulo
Section titled “Activar el módulo”Ve a WooCommerce > Polski > Módulos de tienda y activa Social login. Después configura las claves API para los proveedores seleccionados (Google, Facebook o ambos).
Funciones
Section titled “Funciones”- Inicio de sesión y registro mediante Google OAuth2
- Inicio de sesión y registro mediante Facebook OAuth2
- Botones en las páginas Mi cuenta, checkout e inicio de sesión de WordPress
- Registro automático con el rol “Cliente”
- Vinculación de cuentas por dirección de correo electrónico o identificador del proveedor
- Manejo seguro de los tokens OAuth2
- No se almacenan contraseñas para los usuarios que inician sesión mediante inicio de sesión social
Ajustes
Section titled “Ajustes”Configuración en WooCommerce > Polski > Módulos de tienda > Social login.
| Ajuste | Predeterminado | Descripción |
|---|---|---|
google_enabled | false | Activar el inicio de sesión mediante Google |
google_client_id | - | Client ID de Google Cloud Console |
google_client_secret | - | Client Secret de Google Cloud Console |
facebook_enabled | false | Activar el inicio de sesión mediante Facebook |
facebook_app_id | - | App ID de Meta for Developers |
facebook_app_secret | - | App Secret de Meta for Developers |
auto_register | true | Crear una cuenta automáticamente en el primer inicio de sesión |
Opción en la base de datos: polski_social_login.
Configuración de proveedores
Section titled “Configuración de proveedores”- Ve a Google Cloud Console
- Crea un proyecto nuevo o selecciona uno existente
- Ve a APIs & Services > Credentials
- Haz clic en Create Credentials > OAuth 2.0 Client ID
- Tipo de aplicación: Web application
- Añade una URI de redirección autorizada:
https://yourstore.com/?polski_social_login=google_callback - Copia el Client ID y el Client Secret en los ajustes del módulo
- Asegúrate de que la Google+ API o la People API esté activada en el proyecto
- Ve a Meta for Developers
- Crea una nueva aplicación de tipo Consumer
- En los ajustes de la aplicación, ve a Facebook Login > Settings
- Añade una URI de redirección OAuth válida:
https://yourstore.com/?polski_social_login=facebook_callback - Copia el App ID y el App Secret en los ajustes del módulo
- Pon la aplicación en modo Live (no sandbox)
Vinculación de cuentas
Section titled “Vinculación de cuentas”El módulo vincula las cuentas de usuario de la siguiente manera:
- Por dirección de correo electrónico - si ya existe una cuenta de WordPress con la misma dirección de correo electrónico, el módulo la vincula automáticamente (el usuario inicia sesión en la cuenta existente)
- Por identificador del proveedor - si el usuario ha iniciado sesión antes con el mismo proveedor, el módulo lo reconoce por el identificador almacenado
Los datos del proveedor se almacenan en usermeta:
_polski_social_google_id- identificador de Google_polski_social_facebook_id- identificador de Facebook
Detalles técnicos
Section titled “Detalles técnicos”Flujo OAuth2
Section titled “Flujo OAuth2”- El cliente hace clic en el botón “Iniciar sesión con Google/Facebook”
- Redirección a la página de autorización del proveedor
- El cliente consiente en compartir sus datos
- El proveedor redirige de vuelta a la tienda con un código de autorización
- El módulo intercambia el código por un token de acceso (del lado del servidor)
- El módulo obtiene el perfil del usuario (nombre, correo electrónico, identificador)
- El usuario inicia sesión o se registra
Seguridad
Section titled “Seguridad”- Los tokens OAuth2 se intercambian del lado del servidor (nunca en el navegador)
- El parámetro
stateprotege frente a ataques CSRF - El nonce de WordPress se valida al iniciar el inicio de sesión
- El Client Secret nunca se expone en el código del front-end
// Cambiar el rol de un usuario recién registradoadd_filter('polski/social_login/default_role', function (): string { return 'subscriber'; // default: 'customer'});
// Ejecutar una acción tras el registro mediante inicio de sesión socialadd_action('polski/social_login/user_registered', function (int $user_id, string $provider): void { // Enviar un correo de bienvenida wp_mail( get_userdata($user_id)->user_email, '¡Bienvenido a la tienda!', 'Tu cuenta ha sido creada.' );}, 10, 2);
// Filtrar los datos del perfil antes de guardarlosadd_filter('polski/social_login/profile_data', function (array $data, string $provider): array { return $data;}, 10, 2);
// Desactivar el registro automático para un proveedor seleccionadoadd_filter('polski/social_login/auto_register', function (bool $auto, string $provider): bool { if ($provider === 'facebook') { return false; } return $auto;}, 10, 2);Clases CSS
Section titled “Clases CSS”.polski-social-login- contenedor de botones.polski-social-login__button- botón de inicio de sesión.polski-social-login__button--google- botón de Google.polski-social-login__button--facebook- botón de Facebook.polski-social-login__separator- separador “o”
ID del módulo
Section titled “ID del módulo”social_login
Resolución de problemas
Section titled “Resolución de problemas”El botón redirige a la página de error del proveedor - comprueba que la URI de redirección en la consola del proveedor coincida exactamente con la dirección de la tienda (ten en cuenta https frente a http y la barra final).
El usuario no se crea tras iniciar sesión - asegúrate de que auto_register esté activado. Si está desactivado, el inicio de sesión solo funciona para cuentas existentes con una dirección de correo electrónico coincidente.
Error “invalid_client” - comprueba que el Client ID y el Client Secret sean correctos. Asegúrate de que no haya espacios adicionales al principio o al final.
Facebook requiere una revisión de la aplicación - el inicio de sesión básico (correo electrónico, nombre) no requiere revisión. Si la aplicación está en modo sandbox, solo pueden iniciar sesión los administradores y los testers añadidos en el panel de Meta.
Notificar problemas: github.com/wppoland/polski/issues