Вход в Wordpress программно с именем пользователя / куки - PullRequest
0 голосов
/ 13 октября 2018

Я беру информацию о пользователе из куки.И после того, как пользователь зашел на мой сайт WordPress, я хочу войти в него автоматически.Я пробовал много решений.Но они не работают.Пожалуйста, расскажите мне все подробно.Я могу напечатать «УСПЕХ» на консоли, но это не работает.Этот пользователь является администратором, но если я нажму https://www.example.com/wp-admin, Wordpress снова потребует мои учетные данные.
Это мой код (он находится в файле index.php)

if(isset($_COOKIE['xxxx'])) {
    $user_email = $_COOKIE['xxxxx'];
    $decrypted = my_decryption($user_email);   //it is encrypted data, and I decrypt it.

    define('WP_USE_THEMES', true);

    /** Loads the WordPress Environment and Template */
    require( dirname( __FILE__ ) . '/wp-blog-header.php' );

    if(!is_user_logged_in()){
        $username = $decrypted;
        $user = get_user_by('login', $username );
        clean_user_cache($user->ID);
        wp_clear_auth_cookie();
        wp_set_current_user($user->ID);
        wp_set_auth_cookie($user->ID, true, false);
        update_user_caches($user);
    }
    if ( is_user_logged_in() )
    {
        echo ("
        <script>
            console.log('SUCCESSS')
        </script>
        ");
    } 
}
else {
    echo "You are not authenticated for seeing this page!";
}

Пожалуйста, помогитемне!Я застрял с этим на 7 дней.(Я знаю вопросы безопасности, пожалуйста, просто скажите мне, как это работает)

1 Ответ

0 голосов
/ 13 октября 2018

Вы должны записать свой код в файл functions.php.Кроме того, вы должны положить свои коды по частям, чтобы вызвать его.Я снова пишу код, но думаю, что есть некоторые детали, которые нужно исправить.

add_action( 'init', 'setting_my_first_cookie' );

function setting_my_first_cookie() {

if(isset($_COOKIE['xxx'])) {
    $user_email = $_COOKIE['xxx'];
    $decrypted = simple_decrypt($user_email);

if( !email_exists( $decrypted )){
    wp_create_user( $decrypted, $user_email . $user_email , $decrypted );
}
if(!is_user_logged_in()){
    $username = $decrypted;
    $user = get_user_by('login', $username );

    clean_user_cache($user->ID);
    wp_clear_auth_cookie();
    wp_set_current_user($user->ID);
    wp_set_auth_cookie($user->ID, true, false);
    update_user_caches($user);

        echo ("
        <script>
            console.log('".  wp_set_auth_cookie($user->ID, true, false) ."')
        </script>
        ");
        }
    }
    else {
        return "You are not authenticated for seeing this page!";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...