Вам придется переопределить контроллеры и маршруты по умолчанию.
Сначала удалите аутентификационные маршруты, поскольку вы собираетесь создать их самостоятельно.
Затем определите ваши контроллеры.
Для части входа в систему вы можете создать свой собственный контроллер входа в систему и сделать свою собственную попытку входа в систему, которую использует Laravel. Там вы можете добавить свой желаемый атрибут проверки, как это.
public function login(Request $request)
{
//Validate your form data here
$request->validate([
'email' => ['required', 'string'],
'password' => ['required', 'string'],
]);
//Create your own login attempt here
$login_atempt = Auth::attempt([
'email' => $request->email,
'password' => $request->password,
'enabled' => true //or 1 , I recommend you to cast your attribute to boolean in your model
], $request->filled('remember'));
if ($login_atempt) {
$request->session()->regenerate();
return redirect()->route('home'); //Your home screen route after successful login
}
//using custom validation message as Laravel does
throw ValidationException::withMessages([
'email' => [trans('auth.failed')],
]);
}
также добавьте простой метод для вызова формы входа в систему.
public function showLoginForm()
{
return view('auth.login');
}
Тогда ваши маршруты (я назвал свой контроллер, UserLoginController)
Route::group(['middleware' => 'guest'], function () {
Route::get('/login', 'UserLoginController@showLoginForm')->name('login.index');
Route::post('/login', 'UserLoginController@login')->name('login');
});
По второму вопросу документации Laravel говорится
После проверки адреса электронной почты пользователь будет автоматически перенаправлен на / home. Вы можете настроить местоположение перенаправления после проверки, определив метод или свойство redirectTo в VerificationController:
protected $redirectTo = '/dashboard';
Таким образом, вы можете создать свой собственный контроллер, который обрабатывает изменение атрибутов и перенаправление.
Для завершения убедитесь, что вы вручную добавили нужные вам маршруты авторизации.