Как автоматически войти в систему с помощью URL?

3 янв. 2017 г., 07:35:12
Просмотры: 14.4K
Голосов: 5

Я хочу автоматически входить в WordPress, передавая имя пользователя и пароль в качестве параметров URL для входа.

Например, я хочу создать ссылку следующего вида:

www.mysite.com/wp-admin?username=xxxx&pass=xxxxx

Теоретически, если я вставлю эту ссылку в браузер,

я хочу автоматически войти в систему без необходимости вводить данные в поля формы, однако этого не происходит.

Есть ли способ сделать это?

Цель этого - использовать AJAX в веб-приложении для входа.

1
Комментарии

Обычно это очень плохая идея - передавать пароль через параметр строки запроса ($_GET). При таком подходе пароль сохраняется в лог-файлах веб-сервера, истории браузера (хотя и не при использовании AJAX) и может быть передан в заголовке referrer. В данной ситуации я бы создал отдельное секретное значение, которое можно использовать для этой цели.

Steen Schütt Steen Schütt
12 апр. 2022 г. 17:01:12
Все ответы на вопрос 1
0

Используйте приведенный ниже код в первой строке файла functions.php вашей темы или конкретного плагина.

<?php
if( isset($_GET['username']) and $_GET['pass'] ) {
    $user = get_user_by('login', $_GET['username']);

    if ( $user && wp_check_password( $_GET['pass'], $user->data->user_pass, $user->ID) ) {
        wp_set_current_user($user->ID, $user->user_login);
        wp_set_auth_cookie($user->ID);
        do_action('wp_login', $user->ID, $user->user_login);

        wp_redirect( admin_url() );
        exit;
    }

    wp_redirect( home_url() );
    exit;
}
?>
3 янв. 2017 г. 08:03:46