Laravel - Security - Email Verification (官方文件原子化翻譯筆記)

# 前言

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



# Model Preparation

以下的 Laravel example code 的意思是?
  • 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 MustVerifyEmail
    {
    use Notifiable;

    // ...
    }
  • Answer:
    在 User model 透過 implements MustVerifyEmail interface, 啟動 email verification feature
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 example code 的意思是?
  • Example:
    <?php
    Auth::routes(['verify' => true]);
  • Answer:
    註冊使用內建的 Auth\VerificationController

# 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 example code 的意思是?
  • Example:
    <?php
    protected $listen = [
    'Illuminate\Auth\Events\Verified' => [
    'App\Listeners\LogVerifiedUser',
    ],
    ];
  • Answer:
    在 EventServiceProvider 中註冊一個 listener, 監聽 email verified event
Laravel - Security - Encryption (官方文件原子化翻譯筆記) Laravel - Security - Authorization (官方文件原子化翻譯筆記)

留言

Your browser is out-of-date!

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

×