Изменить способы получения пользовательских данных - Password Broker - Laravel 5.1 - PullRequest
0 голосов
/ 31 августа 2018

Прежде всего, извините за мой плохой английский

В настоящее время я использую PasswordBroker фасад для сброса пароля пользователей. Ниже приведен скрипт для выполнения:

use Password; // Facade: Illuminate\Auth\Passwords\PasswordBroker
...
...
$userCredentials = $request->only(
    'email', 'password', 'password_confirmation', 'token'
);

$response = Password::reset(
    $userCredentials,
    function (User $user, $password) {
        $user->password = $password;
        $user->save();
    }
);

При наличии правильного адреса электронной почты, токена и действительного пароля все пользователи могут легко сбросить свой пароль.

Новая моя система была обновлена. Все электронные письма в таблице users были зашифрованы (AES_ENCRYPT), поэтому мне нужно внести некоторые изменения, чтобы их применить.

Вот getUser метод Password фасад

public function getUser(array $credentials)
{
    $credentials = Arr::except($credentials, ['token']);

    $user = $this->users->retrieveByCredentials($credentials);

    if ($user && ! $user instanceof CanResetPasswordContract) {
        throw new UnexpectedValueException('User must implement CanResetPassword interface.');
    }

    return $user;
}

Мне нужны некоторые where критерии, такие как

$user->where(
    DB::raw("AES_DECRYPT(email, 'encryption key')"),
    $userEmail
);

Как применить критерии без изменения оригинального исходного кода Laravel?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...