atnic / laravel-email-verification
Laravel 邮件验证脚手架
v0.1.4
2018-08-29 04:23 UTC
Requires
- php: >=7.0.0
- laravel/framework: 5.5.*
This package is auto-updated.
Last update: 2024-09-08 09:28:34 UTC
README
实现
Laravel 邮件验证是一个包,可以在几个步骤内生成邮件验证的脚手架代码。
但在那之前,请确保您已经配置了您的 .env
文件,特别是对于 MAIL_*
键。我建议您使用 mailtrap.io 进行设置,它非常简单!
好的,下面是安装 Laravel 邮件验证的步骤
- 安装此包
composer require atnic/laravel-email-verification
- 确保您之前已经运行过
php artisan make:auth
,然后运行以下命令
php artisan make:email-verification
- 运行迁移以将
email_verified
列添加到用户表
php artisan migrate
- 将
Atnic\EmailVerification\Traits\EmailVerifiable
特性添加到User
模型。
<?php ... use Atnic\EmailVerification\Traits\EmailVerifiable; class User extends Authenticatable { use EmailVerifiable; ...
- 在
app/Http/Kernel.php
中,修改$routeMiddleware
属性,更改auth
中间件
<?php ... class Kernel extends HttpKernel { ... protected $routeMiddleware = [ // 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth' => \Atnic\EmailVerification\Http\Middleware\Authenticate::class, ...
- 在
RegisterController
中覆盖registered()
方法
<?php ... use Atnic\EmailVerification\Notifications\EmailVerification; class RegisterController extends Controller { ... /** * The user has been registered. * * @param \Illuminate\Http\Request $request * @param mixed $user * @return mixed */ protected function registered($request, $user) { $user->notify(new EmailVerification($user->generateEmailVerificationUrl())); if ($user->isEmailVerificationTimeoutExpired()) { auth()->logout(); return response()->redirectToRoute('verify_email.resend', [ 'email' => $user->email ])->with('status', __('email-verification::verify_email.link_sent')); } } ...
- 完成!
高级用法
在 User
模型中,您可以添加 $emailVerificationTimeout
使用整数值,这定义了用户在邮件未验证的情况下可以登录多长时间(以分钟为单位)。您可以通知他们他们的邮件尚未验证,并可以点击此链接重新发送邮件验证。 route('verify_email.resend', [ 'email' => 'some_email' ])
。默认值为 0,因此如果邮件未经验证,用户不能登录。
安全漏洞
如果您在 Laravel 邮件验证中发现了安全漏洞,请通过 frdteknikelektro@gmail.com 向 Farid Inawan 发送电子邮件。所有安全漏洞都将得到及时处理。
许可
Laravel 邮件验证是一个开源包,许可协议为 MIT 许可。