繁体   English   中英

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

它返回给我一个错误:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM