【发布时间】:2020-03-14 17:14:42
【问题描述】:
在Laravel 6 上使用passport 并且它与users 一起工作正常现在我想为admins 设置passport 我在这里打电话给代理。于是我就这样做了(基于this):
Route::middleware('auth:agent')->group(function () {
控制器:
return Auth::guard('agent')->user();
还有 auth.php:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
'agent' => [
'driver' => 'passport',
'provider' => 'agents',
],
],
...
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'agents' => [
'driver' => 'eloquent',
'model' => App\Agent::class,
],
],
所以我以用户身份登录,并设置 api 令牌并运行:
$user = Auth::user();
return response()->json(['success' => $user], $this-> successStatus);
这会返回我的用户详细信息并正常工作,然后我使用相同的令牌以管理员身份登录,然后运行:
return Auth::guard('agent')->user();
它也会返回我的代理详细信息!与我用于users 的api_token 相同。我用postman 测试了所有内容。它不应该使用用户令牌重新运行代理详细信息,反之亦然。
【问题讨论】:
标签: php laravel laravel-passport