Laravel-Auth multi-guard loginUsingId未按ExpExtend运行
我想知道laravel Auth的多重防护技术有什么问题, 这是我的配置文件Laravel-Auth multi-guard loginUsingId未按ExpExtend运行,laravel,authentication,Laravel,Authentication,我想知道laravel Auth的多重防护技术有什么问题, 这是我的配置文件 'defaults' => [ 'guard' => 'admin', ], 'guards' => [ 'admin' => [ 'driver' => 'session', 'provider' => 'user', ], 'front' => [
'defaults' => [
'guard' => 'admin',
],
'guards' => [
'admin' => [
'driver' => 'session',
'provider' => 'user',
],
'front' => [
'driver' => 'session',
'provider' => 'front',
],
],
'providers' => [
'admin' => [
'driver' => 'eloquent',
'model' => App\Modules\Admin\Models\User::class,
],
'front' => [
'driver' => 'eloquent',
'model' => App\Modules\WebUser\Models\WebUser::class,
],
],
问题是,当我尝试使用id为(主键)的front guard登录时,像这样
Auth::guard('front')->loginUsingId(1)代码>当我这样做时,它返回nullAuth::loginUsingId(1)代码>它让我登录,这是一个仅使用默认防护的系统,当我更改默认值时它工作,但当尝试使用未设置为默认值的防护登录时,它什么也不做。你知道为什么吗?可能是我遗漏了什么或什么您可以尝试以下解决方案:
Auth::guard('web')->loginUsingId(1);
$user=Auth::user();
$user->created_at=date('Y-m-d H:i:s');
$user->save();
根据laravel的工作原理,这个
Auth::guard('front')->loginUsingId(1);
将始终返回null。但是相信我,Auth助手在这里工作得很好。
检查用户是否登录
return Auth::guard('front')->user();
一旦您看到上面的输出,这将非常有意义。然后执行以下操作:
Auth::guard('front')->loginUsingId(1);
您已成功登录。您可以使用以下工具进行测试:
Auth::guard('front')->id();
如果你尝试测试
auth()->id();
您将得到“null”,因为它只检查默认保护首先测试雄辩的提供者:app(illumb\Auth\EloquentUserProvider::class,['model'=>app\Modules\WebUser\Models\WebUser::class])->retrieveById(1)代码>我以前测试过它,它正在检索用户数据