[SOLVED] Argument 1 passed to Tymon\JWTAuth\JWT::fromUser() must be an instance of Tymon\JWTAuth\Contracts\JWTSubject
Limited Time Offer!
For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!
Step 1. Go to config/app.php and add
Tymon\JWTAuth\Providers\LaravelServiceProvider::class
to Providers.
Step 2. In your terminal publish the config file:
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
and add it to your list of service providers in app.php
Step 3. In your terminal generate the secret:
php artisan jwt:secret
Step 4. In config/auth.php – set the default guard to api, and change the api driver to jwt
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
...
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
Step 5. In your User Model, you need to implement the Tymon\JWTAuth\Contracts\JWTSubject contract on your User model, which requires to implement the 2 methods getJWTIdentifier() and getJWTCustomClaims(). See Below
public function getJWTIdentifier() {
return $this->getKey();
}
public function getJWTCustomClaims()
{
return [];
}