Estoy a punto de comenzar a trabajar en un prototipo para un cliente, y una de las características requeridas es la integración con un sistema interno de autenticación / registro de usuarios.
Este sistema actuará como la base de datos de usuarios autorizados y proporciona una interfaz RESTful para crear nuevos usuarios y autenticar usuarios válidos.
Necesito poder crear nuevos usuarios en WP y, como parte de ese proceso, hacer una llamada a la API de autenticación externa para crear / validar a ese usuario.
Una persona que sea un usuario válido pero que WP no conozca debería poder iniciar sesión para comentar, sin necesidad de registrarse en el sitio de WP.
Una persona que inició sesión en el sitio web en general también debería iniciar sesión automáticamente en WordPress.
Estoy pensando que el siguiente es el camino a seguir.
Para (1): ¿hay un gancho de registro que pueda usar?
Para (2): supongo que engancho el filtro de autenticación, es decir, cuando alguien intenta iniciar sesión, lo atrapo, hago una llamada al sistema externo y luego proceso el inicio de sesión de WP o los redirijo al proceso de registro donde ( 1) toma oer.
Para (3): lea la cookie de inicio de sesión establecida por el sitio principal y continúe con (2).
Supongo que también necesitaré insertar un registro en los usuarios y la tabla de usuario.
Entonces, ¿tiene sentido lo anterior? ¿No he pensado en algo? Cualquiera tiene buenos recursos para ayudar con esto (@hakre - ¡¡Vi que has trabajado en esto !!).
Actualizar
Así que todavía estoy golpeando mi cabeza contra esto un poco, esencialmente estoy tratando de conectarme al filtro de autenticación, y lo uso para:
- compruebe si está configurada una cookie de inicio de sesión para el sitio 'maestro' y, en caso afirmativo, vuelva a validar contra su API de autenticación y, si es válida, fuerce un inicio de sesión de WP con
wp_signon()
la información contenida en la cookie del sitio maestro (correo electrónico y contraseña hash) como credenciales para WP - si la cookie no está configurada, redirija a la página de inicio de sesión del sitio maestro y obtenga un inicio de sesión / registro y luego regrese al paso 1
- si no hay un usuario de WP cuando existe un usuario del sitio maestro autenticado, créelo y luego un inicio de sesión 'transparente' (es decir, para que el usuario no vea un formulario de inicio de sesión de WP)
Básicamente, quiero ocultar el formulario de inicio de sesión de WP completamente para los usuarios que solo van a comentar principalmente, y luego encontrar una manera de permitir que los autores y el administrador accedan directamente.
Va bastante lento, esto es con lo que podría necesitar ayuda:
¿Es el filtro de autenticación el correcto para usar? No parece que lo llamen en todas las situaciones que esperaría, por ejemplo, el widget de meta muestra enlaces de inicio / cierre de sesión sin la activación del enlace de autenticación
puedo
wp_signon()
devolver unWP_User
objeto (lo que indica éxito), pero no afecta el estado de inicio de sesión, es decir, el widget de meta aún se mostrará en "Iniciar sesión" incluso después de actualizar.
Cualquier ayuda recibida con gratitud :)