“비밀번호를 분실하셨습니까?”를 사용하지 않고 사용자 비밀번호를 재설정하십시오. = user_hash_password(‘newpass’); $updatepass = db_update(‘users’)

Drupal 7에서는 코드를 통해 사용자 # 1 비밀번호를 재설정 할 수 있음을 알고 있습니다.

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()Drupal 8에는 더 이상 존재하지 않습니다.)

또는 다음 코드를 사용할 수 있습니다.

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);

Drupal 8과 동등한 코드는 무엇입니까? 이 목적으로 어떤 API를 사용해야합니까?



답변

요즘 더 쉽습니다.

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


답변

또는이 스크립트를 독립 실행 형 스크립트로 실행하는 것처럼 보이기 때문에 Drush (9.x) 명령이 있습니다.

drush user:password admin mynewpassword

대한 Drush 8.x의 이전 : :

drush user-password admin --password=newpass


답변