wp_signon()不保存cookie == cant登录

时间:2013-07-12 10:10:50

标签: php ajax wordpress

我正在寻找解决方案,但我一无所获。

我正在尝试进行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)也返回正确的数据)。

2 个答案:

答案 0 :(得分:0)

如果您使用true参数作为安全cookie,则需要在登录页面上使用https,并在管理员ajax网址上使用https,然后您将获得cookie。

答案 1 :(得分:0)

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

相关问题