gpt4 book ai didi

laravel-5 - 如何从 Laravel 5.7 自定义电子邮件验证电子邮件?

转载 作者:行者123 更新时间:2023-12-02 22:11:11 29 4
gpt4 key购买 nike

我刚刚升级到 Laravel 5.7,现在我正在使用内置的电子邮件验证。但是,有两件事我无法弄清楚,主要问题是如何自定义发送给用户以验证其电子邮件的电子邮件?如果用户更改了电子邮件,我也无法弄清楚如何开始发送​​该电子邮件,但我可以将其保存到另一个线程。

最佳答案

当你想在 Laravel 5.7 中添加电子邮件验证时,建议的方法是实现 Illuminate\Contracts\Auth\MustVerifyEmail并使用 Illuminate\Auth\MustVerifyEmail App\User 上的特征型号。

要进行一些自定义行为,您可以重写方法 sendEmailVerificationNotification这是通过调用notify方法来通知创建的用户的方法,并将 Notifications\MustVerifyEmail 的新实例作为参数传递类。

您可以创建自定义通知,该通知将作为参数传递给 $this->notify()在用户模型的 sendEmailVerificationNotification 方法中:

public function sendEmailVerificationNotification()
{
$this->notify(new App\Notifications\CustomVerifyEmail);
}

...然后在你的 CustomVerifyEmail 中您可以定义处理验证的方式的通知。您可以通过发送带有自定义 verification.route 的电子邮件来通知创建的用户,该路由将采用您想要的任何参数。

电子邮件验证通知流程

当新用户注册Illuminate\Auth\Events\Registered时事件在 App\Http\Controllers\Auth\RegisterController 中发出那Registered事件有一个名为 Illuminate\Auth\Listeners\SendEmailVerificationNotification 的监听器注册于 App\Providers\EventServiceProvider :

protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
]
];

SendEmailVerificationNotification监听器检查 $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();
}

关于laravel-5 - 如何从 Laravel 5.7 自定义电子邮件验证电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416804/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com