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.

You may also like...