单点登录WordPress+AJAX

时间:2021-01-03 作者:WP Help Cat

那个让我晚上睡不着觉。

问题是用户已正确登录,但在页面刷新后,应立即登录,而无需重新加载页面。需要一双新鲜的眼睛来观察它。

正确设置cookie和nonce似乎有问题,但不确定如何调试。

非常感谢您的建议。

function my_update_cookie($logged_in_cookie)
{
    $_COOKIE[LOGGED_IN_COOKIE] = $logged_in_cookie;
}
add_action(\'set_logged_in_cookie\', \'my_update_cookie\');

add_action(\'wp_ajax_create_user\', \'im_ajax_create_user\');
add_action(\'wp_ajax_nopriv_create_user\', \'im_ajax_create_user\');

function im_ajax_create_user()
{
    global $wpdb;
    $username = $_POST[\'username\'];
    $usernameID = $_POST[\'userId\'];
    $user_data = [
        \'user_login\' => $username,
        \'user_email\' => $username,
        \'user_pass\' => $usernameID,
        \'role\' => \'subscriber\',
        ];
    $user_id = wp_insert_user($user_data);
    if (isset($user_id->errors[\'existing_user_login\'])) {
        $user = get_user_by(\'login\', $username);
        $user_id = $user->data->ID;
    }
    do_action(\'set_logged_in_cookie\');
    wp_set_auth_cookie($user_id, false, true);
    wp_set_current_user($user_id);
    wp_get_current_user();
}

1 个回复
SO网友:Q Studio

Cookie被发送到浏览器。下次浏览器发送页面请求时,它会发回cookie信息,页面可以利用它-如果没有新的请求,它将不可用。

相关推荐

使用admin-ajax.php发出的AJAX POST请求的状态400

从昨天开始,我就一直在处理这个问题,编写并重写代码来修复这个400 XRH错误。我找不到办法来修理它。在向您展示代码之前,下面是一些上下文:我正在尝试将可变产品添加到归档循环中。我已经成功地将变体选择表单带到了那里,我可以使用AJAX发送正确的数据。问题似乎与请求有关。这是我的代码:// The main php function function variation_add_to_cart_product(){ $product_id = apply_filt