function UserAuth::authenticate

Same name and namespace in other branches
  1. 9 core/modules/user/src/UserAuth.php \Drupal\user\UserAuth::authenticate()
  2. 10 core/modules/user/src/UserAuth.php \Drupal\user\UserAuth::authenticate()
  3. 11.x core/modules/user/src/UserAuth.php \Drupal\user\UserAuth::authenticate()

Overrides UserAuthInterface::authenticate

File

core/modules/user/src/UserAuth.php, line 50

Class

UserAuth
Validates user authentication credentials.

Namespace

Drupal\user

Code

public function authenticate($username, $password) {
    $uid = FALSE;
    if (!empty($username) && strlen($password) > 0) {
        $account_search = $this->entityTypeManager
            ->getStorage('user')
            ->loadByProperties([
            'name' => $username,
        ]);
        if ($account = reset($account_search)) {
            if ($this->passwordChecker
                ->check($password, $account->getPassword())) {
                // Successful authentication.
                $uid = $account->id();
                // Update user to new password scheme if needed.
                if ($this->passwordChecker
                    ->needsRehash($account->getPassword())) {
                    $account->setPassword($password);
                    $account->save();
                }
            }
        }
    }
    return $uid;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.