我使用passport
,并且要使用多个auth
,所以我通过此topic完成了此操作,只是我将名称用作agent
而不是{{1} },我现在想做的就是获取管理员ID。
这是我的代码:
admin
并且:
'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
返回一个错误:
未定义身份验证防护[特工]
对不起,我是Laravel的新手,知道吗?
编辑:我也尝试过
Agents
答案 0 :(得分:1)
您设置的守卫名称为“ 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