Problemas de script entre sites
Você não pode transferir cookies de autenticação WP entre domínios. Você também não deseja armazenar senhas de texto sem formatação para efetuar logon em outra instalação do WP programaticamente. Portanto, é necessário que os usuários efetuem login no WordPress e, em seguida, acessem o status de login por meio de um endpoint da API a partir do site de terceiros. Isso permite que o WordPress lide com toda a autenticação. É bastante seguro, pois o usuário terá que efetuar login fisicamente no lado do WP para que o ponto de extremidade da API sirva os dados para terceiros.
Crie um ponto de extremidade da API
Confira este artigo que acabei de escrever aqui: http://coderrr.com/create-an-api-endpoint-in-wordpress/
Além disso, você pode ver a demonstração do código aqui: https://gist.github.com/2982319
Você terá que descobrir a lógica para suas próprias necessidades de aplicativos, mas isso permitirá que você crie um terminal em que possa servir o que quiser do lado do WordPress.
Como você está usando o WordPress como site de autenticação, pode usar uma verificação como is_user_logged_in (). Se eles estiverem conectados, retorne um objeto de usuário para terceiros com as informações necessárias.
Fazendo logon de terceiros
De terceiros, eles podem criar um link para sua página de login para uma experiência perfeita usando a consulta redirect_to var. Uma vez logado, ele os passará de volta para o site de terceiros.
http://sub.yourdomain.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.third-party-domain.com
Logins remotos
Se você precisar logar usuários no WordPress a partir de um site de terceiros, poderá usar algumas funções WP simples listadas neste site: http://kuttler.eu/code/log-in-a-wordpress-user-programmatically/
Você definitivamente precisará usar um segredo compartilhado e criar hashes baseados em tempo com esse segredo para manter as coisas seguras. Basicamente, aqui está o que seria:
Terceiros enviam solicitação com um carimbo de data e hora e um token gerado por um segredo compartilhado:
$shared_secret = 'foobar'; //do not send this to the API endpoint
$timestamp = time();
$token = md5($shared_secret.$time_stamp);
A instalação do WordPress recebe a solicitação:
$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!