[英]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
它返回给我一个错误:
Auth guard [Agents] 未定义
抱歉,我是 Laravel 的新手,知道吗?
编辑:我也试过
php artisan config:clear
php artisan config:cache
您设置的守卫名称为“代理”,因此您应该通过这种方式访问它。
我认为您所做的是返回SessionGuard
而不是您的用户 model。
试试这些:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.