繁体   English   中英

Laravel 5.7 电子邮件验证路由

[英]Laravel 5.7 Email Verification Routes

在 Laravel 5.7 上添加了电子邮件验证功能。 但是在我的项目中,我不使用默认路由名称并为我自己的目的添加了一个前缀。 现在,当我添加以下代码以添加验证路由时,它显示错误。

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

错误消息显示verification.verify路由不存在。 我在哪里可以在我的项目中更新此路线名称? 或者使用此功能的唯一方法是遵循默认的身份验证路由名称?

项目源代码可在https://github.com/nasirkhan/laravel-starter/tree/l57 获得

而不是使用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');

然后根据需要自定义:)

任何来到这里并正在寻找最新 Laravel 的 tompec版本的人,请使用以下内容。 注意/{hash}

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

当您想要更改完成验证过程的路线时,您必须更改验证过程的所有工作方式。

邮件验证通知流程

在注册过程中,会发出一个Illuminate\\Auth\\Events\\Registered Laravel 带有一个监听器Illuminate\\Auth\\Listeners\\SendEmailVerificationNotification ,它已经在App\\Providers\\EventServiceProvider

在发出Registered事件时实现MustVerifyEmail接口后, SendEmailVerificationNotification侦听器将检查App\\User是否已经使用了Illuminate\\Contracts\\Auth\\MustVerifyEmail特性,方法是检查用户创建的是否是MustVerifyEmail的实例,如果是这样的话将在user上调用sendEmailVerificationNotification方法,当它使用Illuminate\\Auth\\MustVerify trait 时获取此方法的实现。

验证路径的自定义

要更改验证过程的行为,您可以自定义sendEmailVerificationNotification以发出自定义event ,该event可以具有自定义侦听器,您将在其中执行所有验证内容并通过电子邮件通知user ,您将通过该电子邮件发送自定义路由将完成验证过程

就我而言,我遇到了同样的问题,并且收到了消息

InvalidArgumentException 

Attribute [auth] does not exist.

at vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php:92

我已经解决了它更新我的 Composer 可执行文件和 Laravel 本地文件的问题。

composer global self-update

composer update

似乎我的作曲家可执行文件正在使用旧版本的 laravel 安装程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM