Поскольку ваша User
модель использует Illuminate\Auth\MustVerifyEmail
, вы можете переопределить метод sendEmailVerificationNotification
, который представляет собой метод, который уведомляет созданного пользователя, вызывая метод notify
и передавая, в качестве параметра,новый экземпляр класса Notifications\MustVerifyEmail
.
Вы можете создать пользовательское уведомление, которое будет передано в качестве параметра $this->notify()
в методе sendEmailVerificationNotification
в вашей User
модели:
public function sendEmailVerificationNotification()
{
$this->notify(new App\Notifications\CustomVerifyEmail);
}
И в своем уведомлении CustomVerifyEmail
вы можете определить route
, с помощью которого будет выполняться проверка, и все параметры, которые она примет.
Когда новый пользователь регистрирует событие Illuminate\Auth\Events\Registered
испускается в App\Http\Controllers\Auth\RegisterController
, и это событие имеет прослушиватель Illuminate\Auth\Listeners\SendEmailVerificationNotification
, который зарегистрирован в App\Providers\EventServiceProvider
:
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
]
];
Этот прослушиватель проверяет, передается ли $user
, который передается в качестве параметраnew Registered($user = $this->create($request->all()))
в аутентификации Laravel по умолчанию App\Http\Controllers\Auth\RegisterController
- это экземпляр Illuminate\Contracts\Auth\MustVerifyEmail
, который является чертой, которую Laravel предлагает использовать в модели App\User
, если вы хотите предоставить подтверждение по умолчанию для электронной почты и проверить также, что $user
еще не проверено.Если все, что пройдет, будет вызывать метод sendEmailVerificationNotification
для этого пользователя:
if ($event->user instanceof MustVerifyEmail && !$event->user->hasVerifiedEmail()) {
$event->user->sendEmailVerificationNotification();
}