Problemas de secuencias de comandos entre sitios
No puede transferir cookies de autenticación WP entre dominios. Tampoco desea almacenar contraseñas de texto simple para iniciar sesión en otra instalación de WP mediante programación. Por lo tanto, tendrá que hacer que los usuarios inicien sesión en WordPress y luego accedan a su estado de inicio de sesión a través de un punto final de API desde el sitio de terceros. Esto permite a WordPress manejar toda la autenticación. Es bastante seguro ya que un usuario tendrá que iniciar sesión físicamente en el lado WP para que el punto final de la API proporcione los datos a terceros.
Crear un punto final de API
Echa un vistazo a este artículo que acabo de escribir aquí: enlace
También puede ver la demostración del código aquí: enlace
Tendrá que descubrir la lógica para sus propias necesidades de aplicación, pero esto le permitirá crear un punto final donde pueda servir todo lo que desee desde WordPress.
Ya que estás usando WordPress como el sitio de autenticación, puedes usar un cheque como is_user_logged_in (). Si han iniciado sesión, devuelva un objeto de usuario al tercero con la información que necesite.
Iniciar sesión desde un tercero
Desde el tercero, pueden vincularse a su página de inicio de sesión para una experiencia perfecta usando redirect_to query var. Una vez que haya iniciado sesión, los devolverá al sitio de terceros.
http://sub.yourdomain.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.third-party-domain.com
Inicios de sesión remotos
Si necesita ingresar usuarios a WordPress desde un sitio de terceros, puede usar algunas funciones WP simples que se enumeran en este sitio: enlace
Definitivamente, necesitarás usar un secreto compartido y crear hashes basados en el tiempo de ese secreto para mantener las cosas seguras. Básicamente, esto es lo que se vería:
El tercero envía la solicitud con una marca de tiempo y un token generado por un secreto compartido:
$shared_secret = 'foobar'; //do not send this to the API endpoint
$timestamp = time();
$token = md5($shared_secret.$time_stamp);
La instalación de WordPress recibe la solicitud:
$shared_secret = 'foobar';
$timestamp = esc_attr($_GET['timestamp']);
if((time() - $timestamp) > 30) # Threshold is 30 seconds
//do something here - TOKEN expired!
$token = md5($share_secret.$timestamp);
$token_to_check = esc_attr($_GET);
if($token == $token_to_check)
//authenticated!