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

以下位於 ResetPasswordController 的 Laravel example code 的意思是?
  • Example:
    <?php
    protected $redirectTo = '/dashboard';
  • Answer:
    Laravel 預設當 password reset 後, 會自動 redirect 到 /home, 若要 redirect 到其他地方, 可在 ResetPasswordController 中的 $redirectTo property 定義
Laravel Password Reset 中, 預設 password reset tokens 會在幾個小時後失效?

1 小時

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

config/auth.php
expire option



# Customization

以下的 Laravel example code 的意思是?
  • Example:
    <?php
    use Illuminate\Support\Facades\Password;

    public function broker()
    {
    return Password::broker('name');
    }
  • Answer:
    如果你有一個以上的 user table 或 model, 有需求不使用預設設定的話, 可在 ForGotPasswordController 以及 ResetPasswordController 定義其他設定, 'name''config/auth.passwords' 中的定義

# Reset Email Customization

以下的 Laravel example code 的意思是?
  • Example:
    <?php
    public function sendPasswordResetNotification($token)
    {
    $this->notify(new ResetPasswordNotification($token));
    }
  • Answer:
    Laravel 中, 當使用 scaffolding 時, 預設有 password reset 的功能, 如果想要變更通知的 notification class, 可在 Model 中使用 sendPasswordResetNotification method 自定義
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

×