使用 JWT 方式来实现 API 多用户多表认证
1、先使用 composer
安装 jwt-auth
执行下面命令
composer require tymon/jwt-auth
2、 注册服务提供者 config/app.php
'providers' => [
.../
Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
]
'aliases' => [
.../
'JWTAuth' => 'Tymon\JWTAuth\Facades\JWTAuth',
'JWTFactory' => 'Tymon\JWTAuth\Facades\JWTFactory',
]
3、发布生成配置文件
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
4、使用以下命令生成密钥
php artisan jwt:secret
5、配置多 guard
来区分认证 打开 config/auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt', // 默认是 token
'provider' => 'users',
],
// 新增admins 模块
'admin' => [
'driver' => 'jwt',
'provider' => 'admins',
]
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Models\Admin::class,
]
],
6、生成相应的数据表 执行下面命令 php artisan make:model Models/Admin -m
生成 model 与对应的表
Schema::create('admins', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('mobile')->unique();
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
7、执行 php artisan migrate
生成表结构,执行下面 sql 语句生成数据
# users 表
insert into `users` ( `name`, `mobile`,`email`, `password`, `remember_token`, `crea