Как отправить программный код забытого пароля?

Я реализовал Decoupled Drupal в одном из моих проектов, одна из возможностей, которую мне нужно реализовать, - это функция forget password. Поэтому я создал собственный маршрут для прослушивания запрошенного пароля.

Я знаю, что могу создать URL-адрес сброса пароля с user_pass_reset_url() ; Я могу сгенерировать эту ссылку и программно настроить электронную почту для этого пользователя, но я ищу службу или функциональные возможности Drupal для достижения этой задачи.

Как я могу программно отправить сообщение с паролем сброса?

6 голосов | спросил zhilevan 22 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 22 Sep 2016 14:16:13 +0300 2016, 14:16:13

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

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132