【发布时间】:2020-11-23 08:20:24
【问题描述】:
提前谢谢你, 我想要多个 laravel 护照保护,因为我的系统有 2 种用户类型,1)管理员,2)普通用户。 对于两者,我都有单独的路由和身份验证模块(登录、注册、注销等)。所以我需要一个单独的护照保护来进行 API 身份验证。我添加的一些代码如下
config/auth.php 如下所示
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
'api-admin' => [
'driver' => 'passport',
'provider' => 'admins',
'hash' => false,
]
],
在这里我为管理员和用户定义了 2 个守卫
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'admins' => [
'driver' => 'eloquent',
'table' => App\Models\Admin::class,
],
],
在这里我为管理员和用户定义了 2 个提供者
现在我正在创建类似的令牌
$tokenResult = $user->createToken('TOKEN_DEMO');
$token = $tokenResult->token;
$token->save();
$accessToken = $tokenResult->accessToken;
对于 user_id = 1 的管理员用户,它的生成效果与预期一样好(例如,考虑 user_id = 1) 这是关于为管理员用户生成令牌
与普通用户登录并生成令牌的方式与上述相同,那么这也会为oauth_clients表中user_id = 1的用户生成令牌
担心的是,如果普通用户注销,那么管理员用户的令牌将被自动销毁,因为 oauth_clients 表中两者的 user_id 都是 1,而两者的守卫不同
请帮帮我
【问题讨论】:
标签: php oauth laravel-passport