Вход на второй гвардии вызывает выход на обоих Laravel - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть 2 охранника на моем сайте клиентов и администраторов. По какой-то причине, когда я вошел в систему с правами администратора и попытался войти в систему с учетной записью клиента, я вошел в систему от администратора. После этого форма входа клиента обновляется, и я могу войти без проблем.

Вот мои охранники:

'guards' => [
    'customer' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],
],

и поставщики:

'providers' => [
    'admins' => [
        'driver' => 'eloquent',
        'model' => App\Admin::class,
    ],

    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Customer::class,
    ],
],

Маршруты:

//for admins
$this->get('/login', 'Http\Controllers\Auth\LoginController@showLoginForm')->name('adminLogin');
$this->post('/login', 'Http\Controllers\Auth\LoginController@login');
$this->post('/logout', 'Http\Controllers\Auth\LoginController@logout')->name('logout');

//for customers
    Route::get('/acc/login', 'AccountController@loginForm')->name('customerLoginForm');
    Route::post('/acc/login', 'AccountController@login')->name('customerLogin');

Администратор использует файлы аутентификации laravel по умолчанию, и клиенты имеют заказной контроллер с методом входа, подобным этому:

public function login(Request $request)
{
    $rules = [
        'customer_email' => 'required|email',
        'customer_password' => 'required|string',
    ];

    $validator = Validator::make($request->all(), $rules);

    if ($validator->fails()) {
        return redirect()->route('customerLoginForm')
            ->withErrors($validator);
    } else {
        if (Auth::guard('customer')->attempt(['email' => $request->customer_email, 'password' => $request->customer_password])) {
            return redirect()->route('accountMyOrders');
        } else {
            return redirect()->back()->withInput($request->only('customer_email'))->withErrors('Wrong login/email!');
        }
    }
}

В итоге логин и пароль совпадают с данными в БД, но я не могу войти в обе учетные записи. Это невозможно на laravel или есть какая-то ошибка в коде?

Большое спасибо за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...