Вот что я делаю для нескольких таблиц аутентификации:
- Перейдите в config> auth.php
Add Guard
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
'hash' => false,
],
'company' => [
'driver' => 'session',
'provider' => 'companies',
'hash' => false,
],
],
AddПровайдер
'providers' => [
'admins' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'companies' => [
'driver' => 'eloquent',
'model' => App\Companies::class,
],
],
Добавить пароль
'passwords' => [
'admins' => [
'provider' => 'admins',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
'companies' => [
'provider' => 'companies',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
],
Перейти к приложению \ Http \ Middleware \ RedirectIfAuthenticated
Обновить метод handel
public function handle($request, Closure $next, $guard = null)
{
if ($guard === 'admin' && Auth::guard($guard)->check()) {
return redirect('/admin');
}
if ($guard === 'company' && Auth::guard($guard)->check()) {
return redirect('/company');
}
return $next($request);
}
Теперь я полагаю, что в этом случае у вас разные контроллеры для пользователей и компанийВы можете добавить промежуточное ПО в свой контроллер
public function __construct()
{
// For Admin Users
$this->middleware('auth:admin');
// For Companies Users
//$this->middleware('auth:company');
}
Или вы также можете добавить промежуточное ПО в маршрут *
Пример
Route::group([
'namespace' => 'Companies',
'middleware' => 'auth:company'
], function () {
// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
});
Надеюсь, это поможет.