在Laravel 5.7上添加了电子邮件验证功能 . 但在我的项目中,我不使用默认路由名称并为我自己的目的添加了前缀 . 现在,当我添加以下代码来添加验证路由时,它会显示错误 .
Auth::routes(['verify' => true]);
错误消息显示 verification.verify
路由不存在 . 我在哪里可以更新项目中的路径名称?或者,使用此功能的唯一方法是遵循默认的Auth Route名称?
项目源代码可在https://github.com/nasirkhan/laravel-starter/tree/l57获取
2 回答
而不是使用
Auth::routes(['verify' => true]);
只需使用Auth::routes();
并手动添加这些路线:然后根据需要自定义:)
如果要更改验证过程将要完成的路径,则必须更改验证过程的所有工作方式 .
电子邮件验证通知流程
在注册过程中,将发出事件
Illuminate\Auth\Events\Registered
. Laravel来了一个已经在App\Providers\EventServiceProvider
注册的听众Illuminate\Auth\Listeners\SendEmailVerificationNotification
.在发出
Registered
事件后实现MustVerifyEmail
接口后,SendEmailVerificationNotification
监听器将检查App\User
是否已使用Illuminate\Contracts\Auth\MustVerifyEmail
特征,方法是检查用户是否为MustVerifyEmail
的实例,如果是这样的话,它将调用user
上的sendEmailVerificationNotification
方法 . 当它使用Illuminate\Auth\MustVerify
特征时,它会获得此方法的实现 .自定义验证路线
要更改验证过程的行为,您可以自定义
sendEmailVerificationNotification
以发出自定义event
,其中可以有一个自定义侦听器,您将在其中执行所有验证内容并通过电子邮件通知user
,您将在其中发送自定义路由,通过该自定义路由验证过程将完成