好的,我在我的应用中发生了一些自定义Auth。我们有一个工作的寄存器控制器,但是此刻调用Auth :: facade是调用错误的表。由于我有两个身份验证表,而不仅仅是默认用户表,如何注册一个单独的Auth外观来调用新的Auth表。
文档似乎没有明确涵盖Multi-Auth场景。
我希望能够打出这样的话:
if (Auth::attempt(['Username' => $request['Username'], 'Password' => $request['Password']])) {
return redirect()->route('agencydash');
}
return redirect()->back();
}
而不是检查用户表(它目前做的),我想检查公司的表。
答案 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