好的,我的应用程序中发生了一些自定义身份验证。我们有一个工作寄存器 Controller ,但是此时调用 Auth::facade 调用了错误的表。由于我有两个身份验证表,而不仅仅是默认用户表,我该如何注册一个单独的 Auth facade 来调用新的 Auth 表。
文档似乎没有清楚地涵盖多授权场景。
我希望能够这样调用:
if (Auth::attempt(['Username' => $request['Username'], 'Password' => $request['Password']])) {
return redirect()->route('agencydash');
}
return redirect()->back();
}
我不想检查用户表(它目前所做的),而是想检查公司表。
最佳答案
首先,当你想使用单独的表/模型进行身份验证时,你应该添加一个新的守卫。它可以在您的 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
关于php - Laravel 5.3 在哪里保存授权数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40278944/