Laravel - Security - Password Reset

前言

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




Introduction

Laravel Password Reset 中, 若要使用預設的 password reset feature, User model 需要 use 哪一個 trait?
  1. Illuminate\Notifications\Notifiable trait
  2. Illuminate\Auth\Passwords\CanResetPassword trait




Database Considerations

Laravel Password Reset 中, 若要使用預設 password reset feature, 務必 implement 哪一個 interface?

Illuminate\Contracts\Auth\CanResetPassword interface


Generating The Reset Token Table Migration

Laravel Password Reset 中, password reset 會儲存 password reset token 在資料庫, 這個預設的 migration 可使用哪個 CLI 建立?
composer require laravel/ui

php artisan migrate




Routing

composer requrie laravel/ui

php artisan ui vue --auth




Views

Laravel Password Reset 中, 若要使用 CLI 來產生 password reset 的 view, 該怎麼做?
composer require laravel/ui
php artisan ui vue --auth




After Resetting Passwords

Laravel Password Reset 中, 在 password reset 之後, 會自動重導到 /home, 若要將 /home 改成 /dashboard, 可以在哪個檔案中的 $redirectTo property 修改?

ResetPasswordController

Laravel Password Reset 中, 在 password reset 之後, 會自動重導到 /home, 若要將 /home 改成 /dashboard, 可以在哪個 ResetPasswordController 中的哪個 property 修改?
  • Example:

    <?php
    protected 這裡是? = '/dashboard';
  • Answer:

    <?php
    protected $redirectTo = '/dashboard';
Laravel Password Reset 中, 預設 password reset tokens 會在幾個小時後失效?

1 小時

Laravel Password Reset 中, 預設 password reset tokens 會在一個小時後失效, 若要自定義, 可在哪個檔案?

config/auth.php
expire option




Customization

Laravel Password Reset 中, 若要變更 ResetPasswordController 的 guard, 在以下的 example 中, 可使用哪個 method?
  • Example:

    <?php
    use Illuminate\Support\Facades\Auth;

    protected function 這裡是?()
    {
    return Auth::guard('guard-name');
    }
  • Answer:

    <?php
    use Illuminate\Support\Facades\Auth;

    protected function guard()
    {
    return Auth::guard('guard-name');
    }
Laravel Password Reset 中, 如果要再多個 user table 上 reset passwords, 需要定義多個 brokers, 在 ForGotPasswordController 以及 ResetPasswordController 中, 如果我要自定義 broker, 在以下的 example 中可以使用哪個 method?
  • Example:

    <?php
    use Illuminate\Support\Facades\Password;

    public function 這裡是?()
    {
    return Password::broker('name');
    }
  • Answer:

    <?php
    use Illuminate\Support\Facades\Password;

    /**
    * Get the broker to be used during password reset.
    *
    * @return PasswordBroker
    */
    public function broker()
    {
    return Password::broker('name');
    }


Reset Email Customization

Laravel Password Reset 中, 若我要自定義 reset password notification, 在以下的 example 中, 可以在 User model 中覆寫哪一個 method?
  • Example:

    <?php
    public function 這裡是?($token)
    {
    $this->notify(new ResetPasswordNotification($token));
    }
  • Answer:

    <?php
    public function sendPasswordResetNotification($token)
    {
    $this->notify(new ResetPasswordNotification($token));
    }
Laravel Password Reset 中, 若我要自定義 reset password notification, 在以下的 example 中, 可以在哪個 class 中覆寫哪一個 sendPasswordResetNotification method?

User model

Laravel - Digging Deeper - HTTP Client Laravel - Security - Hashing

留言

Your browser is out-of-date!

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

×