В статье даны варианты доступа в административную панель сайта (админку) на тот случай, если администратор (владелец) сайта забыл пару логин/пароль…
По сути, зайти в панель управления сайтом – несложно, если есть кое-какой навык управления…
Решений множество… от банального восстановления пароля, до экзотики… Но нас интересует – авторизация без изменения пароля! Требования: 1 – у нас есть доступы входа в управление аккаунтом хостинга (смену пароля через БД – рассматривать не будем). 2 – есть доступы к файлам сайта, расположенным на хостинге, к примеру, по FTP.
Узнаем об авторизации поподробнее… рассмотрим нюансы…
Если владелец сайта забыл пару логин/пароль для доступа в админку (либо по каким-то причинам желает авторизоваться в профиле пользователя), и у него есть доступ к файлам сайта (на хостинге, FTP), то попасть в админку не составит труда: используем функцию wp_set_auth_cookie()
.
Подробности ниже:
функция wp_set_auth_cookie() установим куки авторизации
wp_set_auth_cookie()
wp_set_auth_cookie( int $user_id, bool $remember = false, mixed $secure = '', string $token = '' )
параметры функции:
возвращает...
ничего не возвращает.
$user_id
(целое число – обязательный параметр) ID пользователя.
$remember
(необязательное – логическое) помнить ли пользователя.?. (по умолчанию false
)
…если установить true
– куки будут сохранены две недели (14 дней), либо по умолчанию (без запоминания куки) – 2 дня.
$secure
должны ли куки-файлы администратора отправляться только через https (использовать защищённые куки). по умолчанию is_ssl ()
– будет проверка.
$token
Токен, который будет использоваться для файла cookie текущей сессии.
Параметр добавлен в WP 4.3…
Данная функция авторизует пользователя с указанными параметрами (ID) пользователя…
…используется до вывода (html) любого контента на экран – из-за того что работает с http заголовками.
Функция стартует в WP 2.5
местонахождение в ядре WP – wp-includes/pluggable.php
как зайти в консоль сайта, не открывая страницу входа – php
Чтоб войти в консоль администратора, не открывая страницу входа (если забыты пара логин/пароль сайта) – при помощи файла функций, поступаем так:
Для начала, перед авторизацией, логичнее очистить все куки аутентификаций – удалить кэш заголовков…
отработаем (и удалим) такие строки в файле функций…
nocache_headers();
wp_clear_auth_cookie();
wp_set_auth_cookie( $ID );
…далее…
…чтобы авторизоваться, не открывая страницу “входа на сайт”, нужно просто-напросто добавить строку показанную ниже в файл функций functions.php
:
(id – 1 – в большинстве случаев – администратор) а значит рассмотрим пример входа (аутентификацию) в консоль администратора сайта:
wp_set_auth_cookie( '1' );
или:
$ID = 1; // ID пользователя сайта
wp_set_auth_cookie( $ID );
Авторизация (отработка функции) происходит не тут же, а после повторной перезагрузки страницы..!
Если известен ID пользователя сайта, и нужно войти в его профиль – измените в переменной $ID = 2;
= ID пользователя.
После входа в админку, “функцию” нужно обязательно убрать!! иначе, при выходе, нарисуется такая картинка:
То есть, если не удалить строку (код), то, в этом случае авторизация будет отрабатывать по кругу… постоянно! к тому же – любой посетитель, открывший сайт в данный момент, будет авторизован!!
2 вариант авторизоваться в админке, не открывая страницу входа
добавляем такой код в файл функций активного шаблона:
if( isset($_GET['login_my_admin']) ){
add_action( 'init', function(){
$users = get_users([ 'role' => 'administrator' ]);
wp_set_auth_cookie( $users[0]->ID ); } );
}
Всё, что потребуется, после прописки кода в файл функций, так это – перейти на любую страницу сайта и добавить к URL такой “хвостик” (в коде возможно изменить):
?login_my_admin
…после перезагрузки страницы, произойдёт автоматическая авторизация – администратор сайта ( administrator ).
Одно из преимуществ этого кода – защита, страховка…
Как говорилось выше: после того, как мы авторизуемся на сайте, непременно нужно удалить строки кода, иначе – любой посетитель сайта в данный момент будет авторизован!!
Однако, применяя данный код, полной автоматической авторизации на сайте не произойдёт: а для того, чтобы залогиниться, нужно добавить к любой URL ссылке сайта “хвостик”.
…или, предположим, требуется авторизоваться в аккаунте какого-то автора, редактора и пр. сайта… (требуется реже)
if( isset($_GET['login_my_admin']) ){
add_action( 'init', function(){
$users = get_users([ 'role' => 'author']);
$ID = 2; // ID пользователя
wp_set_auth_cookie( $ID ); } );
}
$ID = 2;
– id пользователя аккаунта, в который следует войти.
author
– автор сайта…
В WordPress по умолчанию имеется 6 ролей пользователей (однако возможно добавлять свои):
super admin – суперадминистратор – имеет право управлять сетью сайтов – в режиме мультисайт.
administrator – администратор.
editor – редактор – позволено публиковать и редактировать посты других пользователей сайта.
author – автор – (права ограничены) только публикует и редактиррует собственные посты.
contributor – участник, все его посты модерируются…
subscriber – подписчик – только редактирование своего профиля.
Повторяюсь: после авторизации обязательно уберите код, который использовали!
…далее можно смело приступать к изменению пароля собственного аккаунта прямо в админке (либо паролей пользователей).
Не забываем тюкнуть кнопочку “Выйти на других устройствах”! таким образом мы деактивируем все текущие сессии авторизации на других устройствах, браузерах…
...А мне остаётся только раскланяться... и пожелать полезной работы в сети
Смена эл/почты; логина пользователя (админа); пароля через Базу Данных за минуту
mihalica.ru !