Я пытаюсь запретить пользователю войти в систему при некоторых условиях.
Моя идея состоит в том, чтобы выполнить некоторые дополнительные проверки после использования системы аутентификации Laravel.
Что касается систем входа / регистрации и восстановления паролей, все работает отлично. Но я не могу выйти из системы и показать пользовательскую ошибку на странице входа.
Все, что я хочу сделать, это показать специальное сообщение "Ваша учетная запись была приостановлена" в поле "адрес электронной почты", после проверки, был ли пользователь приостановлен или нет.
Мой код (HomeController), а также некоторые из моих решений:
public function index(Request $request)
{
// After Laravel logs the user through its authentication system
$user = Auth::user();
if (!isset($user)) {
return redirect('/');
} else {
// we perform some checks of our own
if ($user->suspended != 0) { // suspended by an administrator
$error = trans('errors_login.SUSPENDED_BY_ADMIN');
// return redirect()->route('logout', array('error_msg' => $error));
// return redirect()->route('logout')->withErrors('email','There was an error'); // trying to replace the "email" error
Auth::logout();
$error = ['loginError'=> trans('errors_login.SUSPENDED_BY_ADMIN')];
return view('auth.login', $error);
}
}
...
Просто чтобы уточнить, что такое маршрут выхода из системы:
Route::get('/logout', '\App\Http\Controllers\Auth\LoginController@logout');
Я использую сгенерированное представление входа в систему Laravel:
...
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">E-Mail Address</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>
@if ($errors->has('email'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
Кажется, ничего не работает.
Я довольно новичок в Laravel, поэтому я должен что-то упустить.
Спасибо.