You are here

function user_pass_reset_url in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/user/user.module \user_pass_reset_url()
  2. 4 modules/user.module \user_pass_reset_url()
  3. 5 modules/user/user.module \user_pass_reset_url()
  4. 6 modules/user/user.module \user_pass_reset_url()
  5. 7 modules/user/user.module \user_pass_reset_url()

Generates a unique URL for a user to log in and reset their password.

Parameters

\Drupal\user\UserInterface $account: An object containing the user account.

array $options: (optional) A keyed array of settings. Supported options are:

  • langcode: A language code to be used when generating locale-sensitive URLs. If langcode is NULL the users preferred language is used.

Return value

string A unique URL that provides a one-time log in for the user, from which they can change their password.

6 calls to user_pass_reset_url()
ServerCommand::getOneTimeLoginUrl in core/lib/Drupal/Core/Command/ServerCommand.php
Gets a one time login URL for user 1.
TestSiteUserLoginCommand::execute in core/tests/Drupal/TestSite/Commands/TestSiteUserLoginCommand.php
UserPasswordResetTest::testResetImpersonation in core/modules/user/tests/src/Functional/UserPasswordResetTest.php
Make sure that users cannot forge password reset URLs of other users.
UserRegistrationTest::testRegistrationWithEmailVerification in core/modules/user/tests/src/Functional/UserRegistrationTest.php
UserTokenReplaceTest::testUserTokenReplacement in core/modules/user/tests/src/Functional/UserTokenReplaceTest.php
Creates a user, then tests the tokens generated from it.

... See full list

File

core/modules/user/user.module, line 519
Enables the user registration and login system.

Code

function user_pass_reset_url($account, $options = []) {
  $timestamp = REQUEST_TIME;
  $langcode = isset($options['langcode']) ? $options['langcode'] : $account
    ->getPreferredLangcode();
  return Url::fromRoute('user.reset', [
    'uid' => $account
      ->id(),
    'timestamp' => $timestamp,
    'hash' => user_pass_rehash($account, $timestamp),
  ], [
    'absolute' => TRUE,
    'language' => \Drupal::languageManager()
      ->getLanguage($langcode),
  ])
    ->toString();
}