我正在寻找解决方案,但我一无所获。
我正在尝试进行AJAX登录。这些scipts正在发送正确的数据和响应:错误或正确的登录数据。成功页面重新加载后...用户仍未登录。 我试图强制设置一个cookie,但它并没有效果。
我正在使用强制ssl管理员(如果这很重要)。
function ajax_login(){
global $user_ID;
if (!$user_ID) {
// First check the nonce, if it fails the function will break
check_ajax_referer( 'ajax-login-nonce', 'security' );
// Nonce is checked, get the POST data and sign user on
$info = array();
$info['user_login'] = $_POST['username'];
$info['user_password'] = $_POST['password'];
$info['remember'] = true;
$user_signon = wp_signon($info, true);
if (is_wp_error($user_signon)){
echo json_encode(array('loggedin'=>false, 'message'=>__('Get lost.')));
} else {
wp_set_current_user($user_ID);
wp_set_auth_cookie($user_ID);
echo json_encode(array('loggedin'=>true, 'message'=>__('Wait stupid, im redirecting...')));
}
}
die();
}
你可以帮帮我吗?我不知道什么是错的。 (在该地方之前一切正常,数据正确发送,var_dump($ info)也返回正确的数据)。
答案 0 :(得分:0)
如果您使用true参数作为安全cookie,则需要在登录页面上使用https,并在管理员ajax网址上使用https,然后您将获得cookie。
答案 1 :(得分:0)
您的wp-config.php
文件也应该有
define('FORCE_SSL_ADMIN', true);
。