Я использую функцию larvel 5.2 multi table (user, admin) auth для использования двух таблиц для пользователей и для администраторов. Все работает нормально, кроме функций промежуточного программного обеспечения. По умолчанию «auth» (Authenticate.php) не работает, и я делаю пользовательский «auth.super_admin» (SuperAdminMiddleware.php) для проверки пользователя, является ли администратор и результат одинаковым. Вот мой auth.php файлLaravel 5.2 аутентификация нескольких таблиц и промежуточное программное обеспечение вместе не работают должным образом
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admins' => [
'driver' => 'session',
'provider' => 'admins'
]
],
Вот Authenicate промежуточного слоя и метод SuperAdminMiddleware:
Authenticate.php
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}
return $next($request);
}
SuperAdminMiddleware.php
public function handle($request, Closure $next)
{
if(\Auth::guard('admins')->check())
{
return $next($request);
}
return redirect('/');
}
Так что, когда я использую «AUTH» в конструкторе контроллера она не работает и соответствующий метод вызывается. Что плохого я делаю или пропадаю?
Может быть, я что-то о картине вы картины не хватает, но я не верю, что можно определить метод ручки дважды в одном файле , –
В средстве аутентификации Authenticate.php ни один метод не находится в файле SuperAdminMiddleware.php. @JeremyAnderson –