Wordpress MySQL 数据库查询

Wordpress MySQL database query

我正在设置一个 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

这让我很困惑

WordPress 不使用 MD5。所以你的查询是错误的。你不能只用 MySQL 来做。但是你可以用 PHP 来完成。

这是实现它的一种简单方法:

第一步: 从 WordPress 安装(wp-includes 目录)中获取 class-phpass.php 文件并将其粘贴到您的请求发件人文件的邻居。并在那里使用这段代码:

    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,其中包含身份验证过程。