Я хочу, чтобы пользователь входил в систему, только если статус поле в пользователи стол установлен в 1. Если это 0 затем просто верните сообщение об ошибке учетная запись пользователя не активна.
Итак, после создания поле состояния в таблице, где я могу сделать проверку, что статус пользователя равен 1, тогда только логин, иначе выдает ошибку.
Я пытался найти, где выполняется проверка подлинности по умолчанию, но нигде не могу ее найти.
Вам нужно просто переопределить credentials()
который определен в AuthenticatesUsers.php
, использование метода входа по умолчанию AuthenticatesUsers
черта характера. так иди в логин контроллер и переписывай вот так.
protected function credentials(Request $request)
{
return [
'email'=>$request->{$this->username()},
'password'=>$request->password,
'status'=>1
];
}
Примечание: не забудьте импортировать класс Request и ничего не изменять в каталоге поставщика.
Вы можете переписать код вapp/Http/Controllers/Auth/LoginController
,
добавлять login()
,
Пытаться —
$email = $request->email;
$password = $request->password;
// Get user data
$user = \App\User::where('email', $email)
->where('status', 1)
->where('password', $password)
->select('id', 'email', 'password')
->get();
// Check
if (!empty($user[0])) {
// logged in
} else {
// Eorror
}
Обновить
Route::post('login', 'Auth\LoginController@login');