Паспорт не может сгенерировать токен обновления

#laravel

#laravel

Вопрос:

Не могли бы вы мне помочь?

Я хочу сгенерировать токен обновления в паспорте.

Я могу сгенерировать токен обновления, только если я использую хэш-пароль по умолчанию из Laravel. Я имею в виду следующую ситуацию: я создаю новую регистрацию (из регистрационной формы) и пытаюсь вызвать api в Postman как по электронной почте, так и по паролю.

    $http = new Client();
        $response = $http->post('http://localhost/passport/public/oauth/token', [
            'form_params' => [
                'grant_type' => 'password',
                'client_id' => '2',
                'client_secret' => '**************',
                'username' => $request->email,
                'password' => $request->password,
                'scope' => ''
            ],


        ]);
 

Но проблема в том, что я не использую хэш-пароль, который laravel имеет по
умолчанию. Я использую другой хэш-пароль, и когда я вызываю API
http://localhost/passport/public/oauth/token
в postman он показывает эту
ошибку :

 Client error: `POST http://localhost/passport/public/oauth/token` resulted in a `401 Unauthorized` response: {"error":"invalid_credentials","error_description":"The user credentials were incorrect.","message":"The user credential 
 

Комментарии:

1. попробуйте добавить это в запрос ‘refresh_token’ => ‘the-refresh-token’

Ответ №1:

Вы должны создать новый драйвер хеширования как отдельный класс, расширив IlluminateHashingAbstractHasher класс и реализовав IlluminateContractsHashingHasher интерфейс.

После этого вы должны зарегистрировать свой пользовательский драйвер в классе HashManager. Для этого в методе register поставщика услуг поместите:

 // Include the class at the top of your service provider
use IlluminateHashingHashManager;

// Then in the register method
HashManager::extend('driverName', function ($app) {
    // Replace the namespace and class with the one you have created in the first step
    // Or resolve it from the app container
    return new AppYourCustomHashDriver();
});
 

После того, как вы это сделаете, вы можете установить то же имя драйвера, которое вы выбрали при расширении HashManager в config/hashing.php файле, установив driver атрибут.

Таким образом, вы заменили хеширование bcrypt по умолчанию в масштабах всей системы, и сопоставление учетных данных должно работать без каких-либо дальнейших изменений.