WP_SignOn在弹出窗口中返回USER,但用户未登录

时间:2017-02-06 作者:contemplator

我正在创建一个登录,它会弹出一个窗口,接收凭据,并在成功登录时关闭。代码用于插件。

我已经阅读并尝试了user-is-not-logged-in 并且在authenticate-user-guidance. 在弹出窗口中,用户似乎已登录。但是,在主窗口中,没有用户登录。

    // $user_name and $user_pass are from the form
    $creds = array(
        \'user_login\'    => $user_name,
        \'user_password\' => $user_pass,
        \'remember\'      => true
    );

    $user = wp_signon( $creds, false );

    if ( is_wp_error( $user ) ) echo $user->get_error_message();
    else {
        wp_set_current_user($user->ID);
        wp_set_auth_cookie($user->ID);
        do_action( \'wp_login\', $user_name);
        if (!session_id()) {
            session_start();
            $_SESSION[\'access_token\'] = $secret->access_token;
            $_SESSION[\'refresh_token\'] = $secret->refresh_token;
        }
        //once main window has this user logged, refresh it and close popup
        //print \'<script>window.opener.location.reload();window.close();</script>\';
        print "$user->user_login : $user->display_name : $user->user_email";
        print (is_user_logged_in())? \'IS LOGGED ALL IN\' : \'DOES NOT WORK AT ALL\';
    }
此输出IS LOGGED ALL IN 在弹出窗口中(以及用户信息)。

我错过了什么?

1 个回复
最合适的回答,由SO网友:contemplator 整理而成

在尝试了这么多事情之后,我尝试在验证后重定向。然而,我不断收到错误“无法修改标题信息-标题已发送”。

我继续读下去the solution 并将整个功能移到了这个位置,它成功了。

相关推荐

如何筛选/钩入检索密码()以筛选$_POST[‘USER_LOGIN’]?

我正在开发一个网站,其中用户名是一个文件编号,称为CPF(将其视为国家ID),该网站具有以下掩码:000.000.000-00 我将用户名存储为普通数字,但我们所有的表单都必须有上面的掩码,这反过来使其_POST[\'user_login\'] 总是带着破折号和圆点。这是用户登录/用户名的示例:$_POST[\'user_login\'] = \'123.456.789-00\' $actual_username_ondb = \'12345678900\' 这对于登录来说不