Как отправить программный код забытого пароля?
Я реализовал Decoupled Drupal в одном из моих проектов, одна из возможностей, которую мне нужно реализовать, - это функция forget password
. Поэтому я создал собственный маршрут для прослушивания запрошенного пароля.
Я знаю, что могу создать URL-адрес сброса пароля с user_pass_reset_url()
; Я могу сгенерировать эту ссылку и программно настроить электронную почту для этого пользователя, но я ищу службу или функциональные возможности Drupal для достижения этой задачи.
Как я могу программно отправить сообщение с паролем сброса?
1 ответ
9
С помощью некоторой обратной инженерии на основном пользовательском модуле решение:
$name = \Drupal::request()->get("name");
$langcode = \Drupal::languageManager()->getCurrentLanguage()->getId();
// Try to load by email.
$users = \Drupal::entityTypeManager()->getStorage('user')->loadByProperties(array('mail' => $name));
if (empty($users)) {
// No success, try to load by name.
$users = \Drupal::entityTypeManager()->getStorage('user')->loadByProperties(array('name' => $name));
}
$account = reset($users);
// Mail one time login URL and instructions using current language.
$mail = _user_mail_notify('password_reset', $account, $langcode);
ответил zhilevan 22 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 22 Sep 2016 15:18:48 +0300 2016, 15:18:48