I am working on project which has separate model for users — App\Models\Customer
. And also it has own authorisation fields — Email
and cust_password
. And also password is hashed by password_hash
function.
In my config/auth.php
in providers
section I set up my custom model:
'providers' => [
'customers' => [
'driver' => 'eloquent',
'model' => App\Models\Customer::class,
],
],
So I am trying to implement Laravel Grand Tokens. I need to make request to /oauth/token/
with client (which was previously created with custom provider
field) and customer credentials as like this:
/** @var \Laravel\Passport\Client $client */
$response = Http::asForm
->post('https://localhost/oauth/token/', [
'grant_type' => 'password',
'client_id' => $client->id,
'client_secret' => $client->secret,
'username' => 'example@example.com',
'password' => password_hash('my-password'),
]);
But I am receiving error: invalid_grant — The user credentials were incorrect
.
I assume that Passport doesn't know where to find my Email
and cust_password
fields. Is there any way to set custom login and password fiends?
Thanks you any advice!
Well, I wasn't attentive enough, there is special topics for this situations:
Customizing The Username Field https://laravel.com/docs/9.x/passport#customizing-the-username-field
Customizing The Password Validation https://laravel.com/docs/9.x/passport#customizing-the-password-validation