web-dev-qa-db-ja.com

パスワードをハッシュ化したWordpressユーザーを作成する方法

私は別のワードプレスサイトからユーザーデータのセットを持っていて、私は別のワードプレスウェブサイトでそれらのそれぞれに対してユーザーを作成したいです。それはwp_insert_user($user)でうまく動作しますが問題はパスワードがaginハッシュされます。 tそのログイン情報でログインするので、どうやってハッシュパスワードでユーザを作成するか、ハッシュパスワードの作成をやめることができますか

2
wordpresrox

データベースのパスワード欄を更新する必要があります(下記参照)。しかし、これだけではうまくいきません。パスワードハッシュはあなたのwp-config.phpのSALTキーを使って塩漬けされます(これは秘密にしておく必要があります)。あなたの新しいサイトはパスワード確認が機能するために同一のキーを持つ必要があるでしょう。

次の関数は、(データベース内の)指定されたユーザーのパスワードフィールドを、提供された(ハッシュされた)パスワードで更新します。

/**
 * @param int $user_id The user ID
 * @param string $hashed_password The hashed password
 * @return int The number of rows updated (should be 1 or 0 ).
*/
function wpse_update_password_field( $user_id, $hashed_password ){
   global $wpdb;

   return $wpdb->update( 
        $wpdb->users,
        array( 'user_pass' => $hashed_password ),
        array( 'ID' => $user_id )
   );
}
2
Stephen Harris

ハッシュパスワードを作成するためによくこれを見ている:

http://codex.wordpress.org/Function_Reference/wp_hash_password

正しくハッシュ化されていないようです。例えば:

$password_hashed = '$P$B55D6LjfHDkINU5wF.v2BuuzO0/XPk/';
$plain_password = 'test';

それはMD5を利用しています。

wp_hash_passwordを読んでみてください

1
Bradly Spicer