Đặt lại mật khẩu người dùng mà không sử dụng mật khẩu Quên mật khẩu?


9

Tôi biết rằng trong Drupal 7 tôi có thể đặt lại mật khẩu số 1 của người dùng thông qua mã.

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require_once DRUPAL_ROOT . '/includes/password.inc';
$newhash = user_hash_password('newpass');
$updatepass = db_update('users') 
  ->fields(array('pass' => $newhash))
  ->condition('uid', '1', '=')
  ->execute();

( user_hash_password()không tồn tại nữa trong Drupal 8.)

Ngoài ra, tôi có thể sử dụng mã sau đây.

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require_once DRUPAL_ROOT . '/includes/password.inc';
$edit['pass'] = 'newpass';
$account= user_load(1);
user_save($account, $edit);

Mã tương đương cho Drupal 8 là gì? Tôi nên sử dụng API nào cho mục đích này?

Câu trả lời:


12

Ngày nay thì dễ hơn:

$account = \Drupal::entityTypeManager()->getStorage('user')->load(1);
$account->setPassword('new password');
$account->save();

như luôn luôn là giải pháp rất tốt và rõ ràng, tnx Master Clive
Yusef

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.