atnic/laravel-email-verification

Laravel 邮件验证脚手架

安装: 185

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 4

分支: 0

开放问题: 0

类型:package

v0.1.4 2018-08-29 04:23 UTC

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 许可