Instalacja i konfiguracja paczki jwt-auth
Instaluję paczkę jwt-auth uruchamiając w terminalu komendę:
composer require tymon/jwt-auth:^1.0
Następnie postępuję zgodnie z dokumentacją https://jwt-auth.readthedocs.io/en/develop/
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
php artisan jwt:secret
Powyższa komenda zaktualizuje plik .env o wpis JWT_SECRET=wygenerowany klucz.
Klucz ten będzie wykorzystywany do zabezpieczenia tokenów.
Modyfikuje jeszcze plik .env.example dodając wpis JWT_SECRET=
Pora na skonfigurowanie modelu User
Dodaję Tymon\JWTAuth\Contracts\JWTSubject interfejs w pliku App/User.php:
use Tymon\JWTAuth\Contracts\JWTSubject;
class User extends Authenticatable implements JWTSubject
Co wymaga zaimplementowania dwóch metod: getJWTIdentifier() i getJWTCustomClaims()
/**
* Get the identifier that will be stored in the subject claim of the JWT.
*
* @return mixed
*/
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
Konfiguracja auth guard:
W pliku config/auth.php
'api' => [
'driver' => 'jwt',
'provider' => 'users',
'hash' => false,
],
Oraz zmieniam domyślny auth guard z session na api:
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
]
W następnym kroku napiszę testy oraz funkcjonalności logowania w api wykorzystując zainstalowaną paczkę do obsługi tokenów JWT.