Problemas de secuencias de comandos entre sitios
No puede transferir cookies de autenticación WP entre dominios. Tampoco desea almacenar contraseñas de texto sin formato para iniciar sesión en otra instalación de WP mediante programación. Por lo tanto, deberá hacer que los usuarios inicien sesión en WordPress y luego acceder a su estado de inicio de sesión a través de un punto final API desde el sitio de terceros. Esto permite que WordPress maneje toda la autenticación. Es bastante seguro ya que un usuario tendrá que iniciar sesión físicamente en el lado de WP para que el punto final de la API sirva los datos a un tercero.
Crear un punto final de API
Mira este artículo que acabo de escribir aquí: http://coderrr.com/create-an-api-endpoint-in-wordpress/
Además, puede ver la demostración del código aquí: https://gist.github.com/2982319
Tendrás que descubrir la lógica para las necesidades de tu propia aplicación, pero esto te permitirá crear un punto final donde puedas servir lo que quieras desde el lado de WordPress.
Como está utilizando WordPress como el sitio de autenticación, puede usar una verificación 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 vincular a su página de inicio de sesión para una experiencia perfecta usando la 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 iniciar sesión en WordPress desde un sitio de terceros, puede usar algunas funciones simples de WP enumeradas en este sitio: http://kuttler.eu/code/log-in-a-wordpress-user-programmatic/
Definitivamente necesitarás usar un secreto compartido y crear hashes basados en el tiempo a partir de ese secreto para mantener las cosas seguras. Básicamente, así es como se vería:
El tercero envía una 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);
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!