Laravel-Auth multi-guard loginUsingId未按ExpExtend运行

Laravel-Auth multi-guard loginUsingId未按ExpExtend运行,laravel,authentication,Laravel,Authentication,我想知道laravel Auth的多重防护技术有什么问题, 这是我的配置文件 'defaults' => [ 'guard' => 'admin', ], 'guards' => [ 'admin' => [ 'driver' => 'session', 'provider' => 'user', ], 'front' => [

我想知道laravel Auth的多重防护技术有什么问题, 这是我的配置文件

'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)当我这样做时,它返回null
Auth::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)我以前测试过它,它正在检索用户数据