WordPress wp_set_auth_cookie() prevent duplicate users
我目前正在使用以下代码在Wordpress中使用
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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_set_auth_cookie
在WordPress中对用户进行身份验证
但是由于尚未完全回答该问题,因此我的情况如下:
用户1使用用户名1登录到PC 1
用户2使用用户名2登录到PC 2
用户名1显示为已登录
所以我的问题是,如何使用
更新:看来我的所有用户现在都已自动以用户1身份登录
谢谢
您正在使用一些不推荐使用的函数,并且没有正确传递
请尝试使用以下内容,请记住,这不会验证密码。有关更多信息,请参见
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 ); } } } |