Chamar wp_signon não registra o usuário em

Atualmente, estou programando um mecanismo de logon único para o meu site WordPress para permitir que o sistema de helpdesk da minha empresa se autentique contra o WordPress.

Para permitir que isso aconteça, eu estou usando wp_signon () para assinar o usuário se eles ainda não estiverem logados. Aqui está uma versão simplificada do que estou fazendo:

 $_POST["log"], 'user_password' => $_POST['pwd'], 'remember' => $_POST["rememberme"]); $user_info = wp_signon($creds, false); if(!is_a($user_info, 'WP_Error')) { $username = $_POST["log"]; wp_set_current_user($user->ID, $username); wp_set_auth_cookie($user->ID, true, false); do_action('wp_login', $username); } else { write_log(ERROR, "Error authenticating: " . $user_info->get_error_message($user_info->get_error_code())); } $user_info = wp_get_current_user(); /* Code from here uses user attributes to generate and encrypt a single sign-on token */ ?> 

O problema que enfrento é que, mesmo depois de chamar wp_signon() , wp_set_current_user() , wp_set_auth_cookie() e as ações de login, o usuário ainda não está logado. Recebo seu object $ user_info, mas não está logado WordPress, então, mais tarde, quando eles seguem um link seguro de volta do sistema de suporte, eles não podem chegar à página e precisam se conectar novamente (derrotando o objective do logon único).

Além disso, tentei replace toda a seção wp_signon() por auth_redirect() e que auth_redirect() com sucesso o usuário no site, mas estou descobrindo que eles são redirecionados para a página de perfil, mesmo que o URL tenha um parâmetro de consulta para redirecioná-los de volta ao meu script.

Solutions Collecting From Web of "Chamar wp_signon não registra o usuário em"