idoleg / jwt-auth
Laravel JWT认证守卫
dev-master
2018-09-04 15:11 UTC
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-09-26 01:40:38 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) - 为用户发放认证token。如果没有指定$user,则发放给当前已认证的用户
访客
如果配置中指定了"guest"部分,那么当系统中没有用户认证时,尝试获取时将返回非null,而是指定在该部分的Eloquent Model。
EloquentTokenUser提供者
2张表(模型)
- user - 存储用户信息
- user_tokens - 存储用户长期认证的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, // модель, в которой хрянятся токены пользователей ], ], ], ]