Wordpress MySQL запрос к базе данных - PullRequest
0 голосов
/ 25 июня 2018

Я нахожусь в процессе настройки веб-сайта WordPress, который подключается к ретрансляционной комнате чата с интегрированной системой входа в систему, я подключил базу данных, которая работает нормально, но она не позволяет аутентификации для пользователей.

Запрос, который я выполняю в конфигурации:

"SELECT `user_email` AS `email` FROM `wp_users` WHERE `user_login` = @a@ AND `user_pass` = MD5(@p@)"

То, что я хочу сделать, - это в основном проверить запрос на то, что user_login существует, а затем аутентифицироваться с паролем.

Ошибка, которую я сейчас получаю, выглядит следующим образом:

COMMAND: username@host.host used IDENTIFY and failed to identify to nonexistent account username

Это меня сейчас озадачивает

1 Ответ

0 голосов
/ 25 июня 2018

WordPress не использует MD5. Так что ваш запрос неверен. Вы не можете сделать это только с MySQL. Но вы можете сделать это с помощью PHP.

Вот один простой способ добиться этого:

Шаг 1: Возьмите файл class-phpass.php из установки WordPress (каталог wp-includes) и вставьте его соседу в ваш файл отправителя запроса. И используйте этот кусок кода там:

    require_once("class-phpass.php");
    $wp_hasher = new PasswordHash(8, true);
    $password='open_password_to_check_here';
    $hashed_password='hashed_password_from_mysql'; //select user_pass from wp_users where user_login=@a@;
    $result=$wp_hasher->CheckPassword($password,$hashed_password));
    //if result is true, then auth is OK.

В качестве альтернативы (и лучшим способом) вы можете использовать WP REST API, который содержит процесс аутентификации.

...