Пользовательский сброс пароля API в Laravel 5.7 - PullRequest
0 голосов
/ 06 марта 2019

по умолчанию токен сброса пароля, отправленный по электронной почте, отличается от того, который был сохранен в базе данных. Я использовал Hasher::make() и hash_hmac('sha256', $token, env('APP_KEY')), чтобы хэшировать это, а затем сравнивать этот токен с базой данных, но вызывать. Что я должен сделать, чтобы преобразовать токен по электронной почте в токен базы данных или сравнить их? Я тоже пробовал

public function convertToken($token)
    {
        if (Str::startsWith($key = env('APP_KEY'), 'base64:')) {
            $key = base64_decode(substr($key, 7));
        }
        return hash_hmac('sha256', $token, $key);
    }

1 Ответ

0 голосов
/ 06 марта 2019

Хэшер 1002 *, используемый реализацией Laravel по умолчанию, можно получить с помощью

$hasher = Password::broker()->getRepository()->getHasher();

Затем вы можете хешировать свой токен, чтобы добавить их в свою базу данных следующим образом:

$hasher->make($token);

И вы можете сравнить токен со значением, хранящимся в вашей базе данных, с помощью этого кода:

$hasher->check($token, $databaseToken);

Но почему вы хотите реализовать себя так, как это сделала команда Laravel?Вам лучше использовать аутентификацию по умолчанию Laravel, если вы не делаете это для развлечения.

...