промежуточное программное обеспечение не позволяет мне войти в систему через веб-охранник - PullRequest
0 голосов
/ 04 июля 2018

У меня есть три пользователя (Staff, Admin, Hr) ..., использующих различные средства защиты для ограничения. Другие средства защиты работают нормально, но веб-защита, которая является настройкой по умолчанию и охраной для персонала (пользователей), не позволяет мне войти ни это дает какую-либо ошибку.

Вот моя функция входа в систему

public function logged(Request $request)
    {
        $this->validate($request,[
            'email' => 'required|email',
            'password' => 'required|min:6'
        ]);

        if (Auth::guard('web')->attempt(['email'=>$request->email,
           'password' => $request->password]))
        {

             return redirect()->intended(url('/home'));
        }
        Session::flash('message','Invalid Login details');
        return redirect()->back()->withInput($request->only('email','remember'));
    }

   Below is my middleware

    public function handle($request, Closure $next, $guard = null)
        {
            switch($guard){
                case 'admin':
                if(Auth::guard($guard)->check()){
                    return redirect()->route('admin.dashboard');
                }
                break;

                case 'hr':
                if(Auth::guard($guard)->check()){
                    return redirect()->route('hr.dashboard');
                }
                break;

                default:
                 if(Auth::guard($guard)->check()){
                return redirect()->route('home');
              }

            return $next($request);

            }

** ниже мой config / auth.php ** в соответствии с просьбой

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],



'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'admin'=> [
        'driver' => 'session',
        'provider' => 'admins',
    ],

    'admin-api' => [
        'driver' => 'token',
        'provider' => 'admins',
    ],

    'hr' => [
        'driver' => 'session',
        'provider' => 'hrs',
    ],

    'hr-api' =>[
        'driver' => 'token',
        'provider' => 'hrs'
    ],
],



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

    'admins' => [
        'driver' => 'eloquent',
        'model' => App\Models\Admins::class,
    ],

    'hrs' => [
        'driver' => 'eloquent',
        'model' => App\Hr::class,
    ],

    'users' => [
        'driver' => 'database',
        'table' => 'users',
    ],
],

1 Ответ

0 голосов
/ 04 июля 2018

Что произойдет, если вы пропустите охрану и дадите ему просто использовать значение по умолчанию, поэтому для default: сделайте следующее

if (Auth::check()) {
    return redirect()->route('home');
}
...