Laravel/Passport 获取守卫用户id
Laravel/Passport get guard user id
我使用 passport
并且我想用于多个 auth
所以我通过这个 完成了这个,只是我使用名称 agent
而不是 admin
,我现在要做的是获取管理员 ID。
这是我的代码:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'agents' => [
'driver' => 'eloquent',
'model' => App\Agent::class,
],
],
并且:
public function handle($request, Closure $next)
{
config(['auth.guards.api.provider' => 'agents']);
return $next($request);
}
并且:
Route::group(['middleware' => ['auth.agent']], function() {
所以为了获得 id
我尝试了:
return Auth::guard('Agent')->id;
还有这些名字agent
agents
Agents
它return我一个错误:
Auth guard [Agents] is not defined
抱歉,我是 Laravel 的新手,有什么想法吗?
编辑:我也试过
php artisan config:clear
php artisan config:cache
您设置的守卫名称为 "agents",因此您应该通过这种方式访问它。
我认为您所做的是返回 SessionGuard
对象而不是您的用户模型。
试试这些:
return Auth::guard('agents')->check(); # true
return Auth::guard('agents')->user()->id; # (int)
修改:
在config/auth.php
中更新guards
数组
'guards' => [
'agents' => [
'driver' => 'session',
'provider' => 'agents',
],
]
或:使用Auth::guard('api')->user()->id
我使用 passport
并且我想用于多个 auth
所以我通过这个 agent
而不是 admin
,我现在要做的是获取管理员 ID。
这是我的代码:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'agents' => [
'driver' => 'eloquent',
'model' => App\Agent::class,
],
],
并且:
public function handle($request, Closure $next)
{
config(['auth.guards.api.provider' => 'agents']);
return $next($request);
}
并且:
Route::group(['middleware' => ['auth.agent']], function() {
所以为了获得 id
我尝试了:
return Auth::guard('Agent')->id;
还有这些名字agent
agents
Agents
它return我一个错误:
Auth guard [Agents] is not defined
抱歉,我是 Laravel 的新手,有什么想法吗?
编辑:我也试过
php artisan config:clear
php artisan config:cache
您设置的守卫名称为 "agents",因此您应该通过这种方式访问它。
我认为您所做的是返回 SessionGuard
对象而不是您的用户模型。
试试这些:
return Auth::guard('agents')->check(); # true
return Auth::guard('agents')->user()->id; # (int)
修改:
在config/auth.php
中更新guards
数组
'guards' => [
'agents' => [
'driver' => 'session',
'provider' => 'agents',
],
]
或:使用Auth::guard('api')->user()->id