dev-master
9999999-dev https://github.com/idoleg/jwt-authJWT Auth Guard for Laravel
MIT
The Requires
- php >=5.5.0
- lcobucci/jwt ^3.2
- laravel/framework 5.6.*
The Development Requires
by Oleg Shikov
Wallogit.com
2017 © Pedro Peláez
JWT Auth Guard for Laravel
config/auth.php, (*1)
['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,
],
]
],
]
]
loginByRequest($request = null) - авторизовать пользователя на основе заголовка Authorization в запросе. Если не передан аргумент $request, проверка идет для текущего запроса, (*2)
createAuthToken($user = null) - выписать токен авторизации для пользователя. Если не указан $user, токен выписывается для авторизованногов системе пользователя, (*3)
Если в конфигурации указана секция "guest", то в случае, если ни один пользователь не авторизован в системе, будет возвращаться не null при попытке его получить, а указанная в этой секции Eloquent Model., (*4)
2 таблицы (модели) 1. user - для хранения пользователей 2. user_tokens - для хранения токенов, по которым пользователи могут аутентифироваться в длительной перспективе, (*5)
#### Поля в таблице user_tokens, (*6)
$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');
#### Конфигурация, (*7)
config/auth.php, (*8)
['providers' => [
'users' => [ // название вашего провайдера, можете указать любое, главное что бы оно же было в секции "guards"
'driver' => 'eloquent-tokens', // обязательно укажите название драйвера "eloquent-tokens"
'models' => [
'user' => App\Models\User::class, // модель, в которой хрянятся пользоавтели
'token' => App\Models\UserToken::class, // модель, в которой хрянятся токены пользователей
],
],
],
]
JWT Auth Guard for Laravel
MIT