Laravel电子邮件验证(技术上)如何工作?

时间:2019-04-06 16:11:32

标签: php laravel laravel-5.8

我正在使用标准的laravel注册系统(php artisan make:auth),目前我想知道laravel中邮件的验证方式。我没有看到数据库中的任何令牌或其他东西可以与laravel的“注册完成”邮件(注册后)进行比较。 那么Laravel如何从根本上确保令牌正确?

我已经查看了RegistraterController,并认为它必须使用Controller的User::create()方法中调用的create方法来做某事。但是,不幸的是,我什至找不到这种方法...
(我的Laravel在版本5.8.7上运行)

1 个答案:

答案 0 :(得分:1)

Laravel为此目的使用所谓的签名路由,即使用密钥对URL进行哈希处理,因此无需存储令牌。参见Illuminate\Routing\UrlGenerator::signedRoute

此功能是通过Illuminate\Auth\Notifications\VerifyEmail模型中使用的Illuminate\Auth\MustVerifyEmail特性从Illuminate\Foundation\Auth\User调用的。

根据用户请求,哈希将通过Illuminate\Routing\UrlGenerator::hasValidSignature进行验证