Laravel 5.7 Маршруты проверки электронной почты - PullRequest
0 голосов
/ 30 сентября 2018

На Laravel 5.7 Добавлена ​​функция проверки электронной почты.Но в моем проекте я не использую имена маршрутов по умолчанию и добавил префикс для своих собственных целей.Теперь, когда я добавил следующий код для добавления маршрутов проверки, он показывает ошибку.

Auth::routes(['verify' => true]);

Сообщение об ошибке показывает, что маршрут verification.verify не существует.Где я могу обновить это название маршрута в моем проекте?Или это единственный способ использовать эту функцию - следовать именам маршрутов аутентификации по умолчанию?

Исходный код проекта доступен по адресу https://github.com/nasirkhan/laravel-starter/tree/l57

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Если вы хотите изменить маршрут, по которому будет выполняться процесс проверки, вы должны полностью изменить способ проверки.

Процесс уведомления о подтверждении электронной почты

Во время процесса регистрациисобытие Illuminate\Auth\Events\Registered испускается.Laravel идет со слушателем Illuminate\Auth\Listeners\SendEmailVerificationNotification, который уже зарегистрирован в App\Providers\EventServiceProvider.

После реализации интерфейса MustVerifyEmail при отправке события Registered слушатель SendEmailVerificationNotification проверит, если App\User уже использовали черту Illuminate\Contracts\Auth\MustVerifyEmail, проверив, является ли созданный пользователем экземпляр MustVerifyEmail; в этом случае он вызовет метод sendEmailVerificationNotification в user, который получит реализацию этого метода при использованииIlluminate\Auth\MustVerify черта.

Настройка маршрута проверки

Чтобы изменить поведение процесса проверки, вы можете настроить sendEmailVerificationNotification для создания пользовательского event, который может иметь пользовательскийслушатель, в котором вы будете выполнять все проверки и уведомлять user по электронной почте, в котором вы будете отправлять пользовательский маршрут, по которому будет выполняться процесс проверки

0 голосов
/ 30 сентября 2018

Вместо использования Auth::routes(['verify' => true]); просто используйте Auth::routes(); и вручную добавьте следующие маршруты:

Route::get('email/verify', 'Auth\VerificationController@show')->name('verification.notice');
Route::get('email/verify/{id}', 'Auth\VerificationController@verify')->name('verification.verify');
Route::get('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');

Затем настройте по своему усмотрению:)

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