Laravel - Security - Email Verification

# 前言

學習一個框架, Ray 的想法是, 在深入理解底層實作的原理之前, 應該先知道這個框架的 使用方法; 先學習怎麼使用這個前人造的輪子, 再學習怎麼樣一個輪子。
所以本篇文章重點在於細讀官方文件, 並將內容理解後以 Q&A 的方式記錄下來, 加速學習以及查詢。




# Model Preparation

Laravel Email Verification 中, 如果我要啟動 Email Verification 功能, 在以下的 User model 中需要 implement 哪一個 interface?
  • Example:

    <?php

    namespace App;

    use Illuminate\Contracts\Auth\MustVerifyEmail;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use Illuminate\Notifications\Notifiable;

    class User extends Authenticatable implements 這裡是?
    {
    use Notifiable;

    // ...
    }
  • Answer:

    <?php

    namespace App;

    use Illuminate\Contracts\Auth\MustVerifyEmail;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use Illuminate\Notifications\Notifiable;

    class User extends Authenticatable implements MustVerifyEmail
    {
    use Notifiable;

    // ...
    }
Laravel Email Verification 中, 當我在 User model implement MustVerifyEmail interface 之後, 每當註冊成功, Laravel 都會做什麼事?

會發確認 email 給該 user




# Database Considerations

Laravel Email Verification 中, 一旦 verify 成功, Laravel 會在哪個 column 記錄下 verified 的時間?

email_verified_at




# Routing

Laravel Email Verification 中, 若要註冊預設的 Auth\VerificationController, 在以下的 example 中該怎麼做?
  • Example:

    <?php
    Auth::routes(這裡是?);
  • Answer:

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

# Protecting Routes

以下的 Laravel example code 的意思是?
  • Example:

    <?php
    Route::get('profile', function () {
    // Only verified users may enter...
    })->middleware('verified');
  • Answer:
    存取 example.com/profile 的 request, 需是通過 email verified 的 user 方可存取

Laravel Email Verification 中, 驗證使用者是否 email verified 的 middleware 是哪一個?

Illuminate\Auth\Middleware\EnsureEmailIsVerified




# Views

Laravel Email Verification 中, email verification 的 view 可使用哪個 CLI 自動安裝?
composer require laravel/ui

php artisan ui vue --auth
Laravel Email Verification 中, 當我使用 CLI 安裝 authentication scaffolding 之後, email verification 的 view 定義在哪個檔案?

resources/views/auth/verify.blade.php




# After Verifying Emails

Laravel Email Verification 中, 當 email verification 完成後, 使用者會自動地被導向 /home, 若要自定義導向位置, 可在哪個檔案中的 protected $redirectTo property 定義?

VerificationController

以下位於 VerificationController 的 example code 的意思是?
  • Example:

    <?php
    protected $redirectTo = '/dashboard';
  • Answer:
    一般來說, Email Verification 完成後, 預設會導向 home, 上面的 property $redirectTo 可以自定義重導向的位置




# Events

Laravel Email Verification 中, 如果我要註冊一個 listener, event 為當有使用完成 email verified 之後, 那在以下的 example 中, 該監聽哪一個 event?
  • Example:

    <?php
    protected $listen = [
    'Illuminate\Auth\Events\這裡是?' => [
    'App\Listeners\LogVerifiedUser',
    ],
    ];
  • Answer:

    <?php
    protected $listen = [
    'Illuminate\Auth\Events\Verified' => [
    'App\Listeners\LogVerifiedUser',
    ],
    ];
Laravel - Security - Encryption Laravel - Security - Authorization

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×