wp_check_password() の使い方|説明・引数・注意点

説明

wp_check_password() は、平文のパスワードが、保存済みのハッシュと一致するかを確認する関数です。

基本構文

wp_check_password( string $password, string $hash, string|int $user_id = '' ): bool

引数

  • $password:平文のパスワード
  • $hash:保存されているハッシュ
  • $user_id:ユーザーID(任意)

戻り値

一致すれば true。

使い方(サンプル)

$user = get_userdata( 1 );
$ok = wp_check_password( 'password', $user->user_pass, $user->ID );

注意点

  • ハッシュを直接比較してはいけません。必ずこの関数を使います。

実務での使いどころ

  • 入力されたパスワードが、保存されているハッシュと一致するかを確認するとき。
  • 独自の認証処理で、パスワードを確認するとき。

よくあるミスと対処

  • 保存されたハッシュと、== で比べている。ハッシュは、毎回違う値になるため、一致しない。この関数で確認する。
  • 引数の順番を逆にしている。第1引数は、入力された平文のパスワード、第2引数は、ハッシュ。
  • md5() など、古い方法で比べている。

NG例

if ( $user->user_pass === wp_hash_password( $password ) ) {
	// ハッシュは毎回違う値になるため、一致しない
}

OK例

if ( wp_check_password( $password, $user->user_pass, $user->ID ) ) {
	// 一致
}

使い分け早見表

関数 役割
wp_check_password() 平文のパスワードが、ハッシュと一致するかを確認する
wp_hash_password() パスワードを、ハッシュ化する
wp_authenticate() ユーザー名とパスワードで、認証する

関連項目

wp_hash_password()、wp_authenticate()

公式リファレンス:wp_check_password() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました