Сопоставить пароль приложения с паролем WordPress

Мне нужно сопоставить пароль моего приложения с паролем WordPress. Я добавляю wp_check_password, wp_hash_password в свой собственный код, но ничего не происходит, моя задача теперь состоит в том, чтобы пользователь зарегистрировал учетную запись в WordPress, это просто, потому что я могу использовать плагин, а проблема в том, что пароль моего приложения, отправленный в wp_user, — MD5, а также не может использовать пароль WordPress для входа в приложение. Надеюсь, кто-нибудь поможет мне, спасибо.
Ниже мой код:

class DbOperations{

private $con;

function __construct(){

require_once dirname(__FILE__).'/DbConnect.php';

$db = new DbConnect();

$this->con = $db->connect();

}
function wp_hash_password($password) {
global $wp_hasher;

if ( empty($wp_hasher) ) {
require_once( ABSPATH . WPINC . '/class-phpass.php');
// By default, use the portable hash from phpass
$wp_hasher = new PasswordHash(8, true);
}

return $wp_hasher->HashPassword( trim( $password ) );
}
function wp_check_password($password, $hash, $user_id = '') {
global $wp_hasher;

// If the hash is still md5...
if ( strlen($hash) <= 32 ) {
$check = hash_equals( $hash, md5( $password ) );
if ( $check && $user_id ) {
// Rehash using new hash.
wp_set_password($password, $user_id);
$hash = wp_hash_password($password);
}

/**
* Filters whether the plaintext password matches the encrypted password.
*
* @since 2.5.0
*
* @param bool       $check    Whether the passwords match.
* @param string     $password The plaintext password.
* @param string     $hash     The hashed password.
* @param string|int $user_id  User ID. Can be empty.
*/
return apply_filters( 'check_password', $check, $password, $hash, $user_id );
}

// If the stored hash is longer than an MD5, presume the
// new style phpass portable hash.
if ( empty($wp_hasher) ) {
require_once( ABSPATH . WPINC . '/class-phpass.php');
// By default, use the portable hash from phpass
$wp_hasher = new PasswordHash(8, true);
}

$check = $wp_hasher->CheckPassword($password, $hash);

/** This filter is documented in wp-includes/pluggable.php */
return apply_filters( 'check_password', $check, $password, $hash, $user_id );
}

/*CRUD -> C -> CREATE */

public function createUser($username, $pass, $email){
if($this->isUserExist($username,$email)){
return 0;
}else{
$password = wp_hash_password($pass);
$stmt = $this->con->prepare("INSERT INTO `users` (`id`, `username`, `password`, `email`) VALUES (NULL, ?, ?, ?);");
$stmt->bind_param("sss",$username,$password,$email);

if($stmt->execute()){
return 1;
}else{
return 2;
}
}
}

public function userLogin($username, $pass){
$password = wp_check_password($pass);
$stmt = $this->con->prepare("SELECT id FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss",$username,$password);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}

public function getUserByUsername($username){
$stmt = $this->con->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s",$username);
$stmt->execute();
return $stmt->get_result()->fetch_assoc();
}private function isUserExist($username, $email){
$stmt = $this->con->prepare("SELECT id FROM users WHERE username = ? OR email = ?");
$stmt->bind_param("ss", $username, $email);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}

}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector