idoleg / jwt-auth
JWT Auth Guard for Laravel
Requires
- php: >=5.5.0
- laravel/framework: ^5.6
- lcobucci/jwt: ^3.2
Requires (Dev)
- mockery/mockery: >=0.9.9
- phpunit/phpunit: ~6.0
This package is not auto-updated.
Last update: 2024-04-24 23:25:26 UTC
README
Конфигурация
config/auth.php
['guards' => [ 'api' => [ // название вашего защитника, можете указать любое, главное что бы оно же было в секции "defaults" 'driver' => 'jwt', // обязательно укажите название драйвера "jwt" 'provider' => 'users', // провайдер, название секции из "providers" 'config' => [ 'authToken' => [ 'verifyKey' => env('JWT_AUTH_KEY'), // ключ, которым будут подписыватся токены авторизации 'life' => 2592000, // время жизни токенов авторизации ], 'guest' => [ // в этой секции возможно указать Eloquent Model и ее ID, она будет возвращаться, когда никакой пользователь не авторизован в системе. Если здесь указано false, будет возвращаться null (как стандартно в Laravel) 'id' => 1, 'model' => App\Models\User::class, ], ] ], ] ]
Методы
-
login($user) - авторизровать пользователя по его Eloquent Model
-
loginByCredentials($credentials) - аутентифицировать пользователя на основе его учетных данных
-
loginByToken($token) - авторизовать пользователя на основе auth token
-
loginByRequest($request = null) - авторизовать пользователя на основе заголовка Authorization в запросе. Если не передан аргумент $request, проверка идет для текущего запроса
-
createAuthToken($user = null) - выписать токен авторизации для пользователя. Если не указан $user, токен выписывается для авторизованногов системе пользователя
Guest
Если в конфигурации указана секция "guest", то в случае, если ни один пользователь не авторизован в системе, будет возвращаться не null при попытке его получить, а указанная в этой секции Eloquent Model.
EloquentTokenUser Provider
2 таблицы (модели)
- user - для хранения пользователей
- user_tokens - для хранения токенов, по которым пользователи могут аутентифироваться в длительной перспективе
Поля в таблице user_tokens
$table->increments('id'); $table->unsignedInteger('user_id'); $table->string('unique_token', 100); $table->ipAddress('user_ip')->nullable(); $table->string('type', 32)->nullable(); $table->string('agent', 256)->nullable(); $table->timestamp('logged_at');
Конфигурация
config/auth.php
['providers' => [ 'users' => [ // название вашего провайдера, можете указать любое, главное что бы оно же было в секции "guards" 'driver' => 'eloquent-tokens', // обязательно укажите название драйвера "eloquent-tokens" 'models' => [ 'user' => App\Models\User::class, // модель, в которой хрянятся пользоавтели 'token' => App\Models\UserToken::class, // модель, в которой хрянятся токены пользователей ], ], ], ]