2

我一直在寻找解决方案,但我什么也没找到。

我正在尝试进行 AJAX 登录。scipts 正在发送正确的数据和响应:错误或正确的登录数据。成功后页面重新加载并且......用户仍然没有登录。我试图强制设置一个cookie,但它没有;没有工作。

我正在使用 force ssl admin(如果这很重要)。

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) 也返回正确的数据)。

4

2 回答 2

0

if you are using true parameter for secure cookie as you are you need to use https on your login page and also https on your admin ajax url and then you will get your cookie.

于 2013-09-09T18:51:40.133 回答
0

你的wp-config.php文件也应该有 define('FORCE_SSL_ADMIN', true);.

于 2017-11-15T13:16:21.193 回答