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 autorizada y proporciona una interfaz REST 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 ese usuario.
-
Una persona que es un usuario válido pero que WP no conoce debe poder iniciar sesión para comentar, sin necesidad de registrarse en el sitio de WP.
-
Una persona que haya iniciado sesión en el sitio web general también debe iniciar sesión automáticamente en WordPress.
Estoy pensando que el siguiente es el camino a seguir.
Para (1): ¿hay un enlace de registro que pueda usar?
Para (2) - Supongo que engancho el filtro de autenticación, es decir, cuando alguien intenta iniciar sesión, capto eso, hago una llamada al sistema externo y luego procesa el inicio de sesión WP o lo redirecciono al proceso de registro donde (1) toma el cargo.
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 la tabla de usuarios y usuarios.
Entonces, ¿tiene sentido lo anterior? ¿No he pensado en algo? Cualquiera tiene buenos recursos para ayudar con esto (@hakre, ¡vi que habías trabajado en esto!).
Actualizar
Así que todavía estoy golpeando mi cabeza contra esto un poco, esencialmente estoy tratando de conectar el filtro de autenticación, y lo uso para:
- compruebe si una cookie de inicio de sesión para el sitio 'maestro' está configurada, y si lo está, vuelva a validar su API de autenticación y, si es válida, fuerce un inicio de sesión WP con
wp_signon()
, usando la información contenida en la cookie del sitio maestro (correo electrónico y contraseña con hash) como credenciales para WP - si la cookie no está establecida, rediríjala a la página de inicio de sesión del sitio maestro y obtenga un inicio de sesión / registro y luego vuelva al paso 1
- si no hay un usuario de WP cuando existe un usuario de 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 por completo para los usuarios que solo van a realizar comentarios, y luego encontrar una manera de permitir que los autores y administradores accedan a él directamente.
Va bastante lento, esto es para lo que necesito ayuda:
-
¿es el filtro de autenticación el correcto para usar? No parece que se haga ninguna llamada en todas las situaciones que esperaría, por ejemplo, el meta widget muestra los enlaces de inicio / cierre de sesión sin el enlace de autenticación auténtico
-
puedo obtener
wp_signon()
para devolver un objetoWP_User
(que indica el éxito), pero no afecta el estado de inicio de sesión, es decir, el meta widget aún se mostrará en "Iniciar sesión" incluso después de actualizar.
Cualquier ayuda recibida con gratitud :)