1
0
mirror of https://github.com/delight-im/PHP-Auth.git synced 2025-08-05 07:37:25 +02:00

Re-use 'getUserDataByEmailAddress' in 'authenticateUserInternal'

This commit is contained in:
Marco
2017-02-16 08:56:44 +01:00
parent 8cc54473e3
commit f2561a1932

View File

@@ -772,17 +772,23 @@ class Auth {
private function authenticateUserInternal($password, $email, $rememberDuration = null) {
$email = self::validateEmailAddress($email);
// attempt to look up the account information using the specified email address
try {
$userData = $this->db->selectRow(
'SELECT id, email, password, verified, username FROM users WHERE email = ?',
[ $email ]
$userData = $this->getUserDataByEmailAddress(
$email,
[ 'id', 'email', 'password', 'verified', 'username' ]
);
}
catch (Error $e) {
throw new DatabaseError();
// if there is no user with the specified email address
catch (InvalidEmailException $e) {
// throttle this operation
$this->throttle(self::THROTTLE_ACTION_LOGIN);
$this->throttle(self::THROTTLE_ACTION_LOGIN, $email);
// and re-throw the exception
throw new InvalidEmailException();
}
if (!empty($userData)) {
$password = self::validatePassword($password);
if (password_verify($password, $userData['password'])) {
@@ -820,13 +826,6 @@ class Auth {
throw new InvalidPasswordException();
}
}
else {
$this->throttle(self::THROTTLE_ACTION_LOGIN);
$this->throttle(self::THROTTLE_ACTION_LOGIN, $email);
throw new InvalidEmailException();
}
}
/**
* Returns the requested user data for the account with the specified email address (if any)