Php Wordpress wp_set_auth_cookie()防止重复用户
我目前正在使用Wordpress中的Php Wordpress wp_set_auth_cookie()防止重复用户,php,wordpress,Php,Wordpress,我目前正在使用Wordpress中的wp\u set\u auth\u cookie()函数使用以下代码登录用户: function auto_login() { $username = $_POST['user']; if ( !is_user_logged_in() ) { $user = get_userdatabylogin( $username ); $user_id = $user->ID;
wp\u set\u auth\u cookie()
函数使用以下代码登录用户:
function auto_login() {
$username = $_POST['user'];
if ( !is_user_logged_in() ) {
$user = get_userdatabylogin( $username );
$user_id = $user->ID;
wp_set_current_user( $user_id, $user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user_login );
}
die();
}
add_action('wp_ajax_auto_login', 'auto_login');
add_action('wp_ajax_nopriv_auto_login', 'auto_login');
我遇到的问题与此线程相同:
但由于这个问题没有得到充分回答,我的情况如下:
wp\u set\u auth\u cookie()
函数登录用户,同时防止为我的所有用户显示相同的用户名
更新:我的所有用户现在似乎都以用户1身份自动登录
谢谢您正在使用一些不推荐使用的函数,并且没有正确地传递
用户名
-变量$user\u login
未设置,您想使用$user->user\u login
。也有人反对赞成
尝试使用以下方法,请记住这不会验证密码。有关更多信息,请参阅文档
function auto_login() {
// make sure user is not logged in and "user" was POST'd
$username = isset( $_POST['user'] )? $_POST['user'] : false;
if ( ! is_user_logged_in() && $username ){
// load the user by username
$user = get_user_by( 'login', $username );
if ( $user ) {
// log user in using the $user object properties
wp_set_current_user( $user->ID, $user->user_login );
wp_set_auth_cookie( $user->ID );
do_action( 'wp_login', $user->user_login );
}
}
}
请尝试改用wp_signon()。这将对用户进行身份验证。它实际上调用wp_set_auth_cookie。问题是,我正在使用ajax在我的页面完成加载后提交登录表单,但似乎在发送任何标题之前需要运行wp_signon()?所以在我的页面加载之前。。。那么,我如何修改我的代码以允许通过ajax运行wp_signon()?好吧,这可以让我登录,就像我的函数一样,但它不能解决登录用户重复/冲突的问题。。。我仍然看到wp_set_auth_cookie()的问题,导致我的所有用户都使用相同的用户帐户登录。您是“用户”使用正确用户名发布的用户吗?您可以将其写入
错误日志()
进行检查吗?