Для осуществления авторизации и регистрации только по телефону в Laravel, вам понадобится изменить стандартную логику аутентификации и создать свои собственные правила валидации.
Во-первых, необходимо настроить маршруты для авторизации и регистрации в файле routes/web.php
. Вы можете использовать стандартный контроллер аутентификации AuthLoginController
для авторизации по телефону, и контроллер AuthRegisterController
для регистрации по телефону.
Пример маршрутов для авторизации:
Route::post('login', 'AuthLoginController@login');
Пример маршрутов для регистрации:
Route::post('register', 'AuthRegisterController@register');
Во-вторых, вам потребуется определить свои правила валидации для полей авторизации и регистрации по телефону в соответствующих контроллерах. Например, если вам нужно, чтобы номер телефона содержал только цифры и имел длину в 10 символов, вы можете использовать правило digits:10
в Laravel.
Пример валидации для авторизации:
protected function validateLogin(Request $request) { $request->validate([ 'phone' => 'required|digits:10', 'password' => 'required|string', ], $this->validationErrorMessages()); }
Пример валидации для регистрации:
protected function validateRegister(Request $request) { $request->validate([ 'phone' => 'required|unique:users|digits:10', 'password' => 'required|string|min:6|confirmed', ], $this->validationErrorMessages()); }
Важно помнить, что вы также должны настроить вашу базу данных и модель пользователя (обычно User
) для использования номера телефона вместо почтового адреса при аутентификации.
Также не забудьте настроить сообщения об ошибках для каждого правила валидации. Вы можете определить их в методе validationErrorMessages()
в каждом контроллере.
protected function validationErrorMessages() { return [ 'phone.required' => 'Поле телефон обязательно для заполнения.', 'phone.digits' => 'Телефон должен содержать 10 цифр.', // другие правила и сообщения об ошибках ]; }
Наконец, убедитесь, что вы отображаете ошибки в представлениях авторизации и регистрации. Для этого обычно используются шаблоны представлений в папке resources/views/auth
@if ($errors->any()) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif
Данный код выведет все ошибки в случае их наличия.
В итоге, чтобы починить валидацию и вывод ошибок при авторизации и регистрации только по телефону в Laravel, вам нужно настроить маршруты, контроллеры, правила валидации, представления, и убедиться, что ваша база данных и модель пользователя поддерживают номер телефона.