首页 > 解决方案 > Laravel 电子邮件验证(技术上)如何工作?

问题描述

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

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

标签: phplaravellaravel-5.8

解决方案


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

这个函数是通过模型中使用Illuminate\Auth\Notifications\VerifyEmailIlluminate\Auth\MustVerifyEmail特征调用的Illuminate\Foundation\Auth\User

根据用户请求,然后通过以下方式验证哈希Illuminate\Routing\UrlGenerator::hasValidSignature


推荐阅读