Laravel 5.3在哪里保留Auth数据?

时间:2016-10-27 07:42:32

标签: php mysql authentication laravel-5

好的,我在我的应用中发生了一些自定义Auth。我们有一个工作的寄存器控制器,但是此刻调用Auth :: facade是调用错误的表。由于我有两个身份验证表,而不仅仅是默认用户表,如何注册一个单独的Auth外观来调用新的Auth表。

文档似乎没有明确涵盖Multi-Auth场景。

我希望能够打出这样的话:

 if (Auth::attempt(['Username' => $request['Username'], 'Password' => $request['Password']])) {
            return redirect()->route('agencydash');
        }
        return redirect()->back();
    }

而不是检查用户表(它目前做的),我想检查公司的表。

1 个答案:

答案 0 :(得分:2)

首先,如果要使用单独的表/模型进行身份验证,则应添加新的防护。可以在config/auth.php文件中完成。

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
    'company' => [
        'driver' => 'session',
        'provider' => 'companies',
    ]
],

...

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'companies' => [
        'driver' => 'eloquent',
        'table' => App\Company::class,
    ],
],

然后,您可以在验证用户身份时使用自定义防护。

if (Auth::guard('company')->attempt($credentials)) {
    //
}

参考 - 检查访问特定防护实例 here