国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

重置密碼

重置密碼


重置密碼

簡介

{tip} 想要快速上手? 只需要在新建的 Laravel 應(yīng)用中運行 php artisan make:auth ,然后在瀏覽器中打開  http://your-app.test/register 或者給你的應(yīng)用分配任意一個 URL。 這個命令將會負責(zé)搭建起整個身份驗證系統(tǒng),包括重置密碼!

大多數(shù) web 應(yīng)用都為用戶提供了重置密碼的功能。相較于強迫你在每個應(yīng)用中都要重新實現(xiàn)一遍此功能,Laravel 提供了便捷的方法來發(fā)送密碼提醒以及執(zhí)行密碼重置。

{note} 在使用 Laravel 的密碼重置功能之前,你的用戶模型必須使用 Illuminate\Notifications\Notifiable trait。

數(shù)據(jù)庫注意事項

首先,驗證你的 App\User 模型是否實現(xiàn)了 Illuminate\Contracts\Auth\CanResetPassword 契約。當(dāng)然,框架中包含的 App\User 模型已經(jīng)實現(xiàn)了該接口,并且使用了 Illuminate\Auth\Passwords\CanResetPassword trait t 來包含實現(xiàn)該接口所需的方法。

生成重置令牌的表遷移

接下來,必須創(chuàng)建一張數(shù)據(jù)表來存儲密碼重置令牌。該數(shù)據(jù)表的遷移已包含在 Laravel 應(yīng)用的 database/migrations 目錄中。 所以,你需要做的只是執(zhí)行數(shù)據(jù)庫遷移命令:

php artisan migrate

路由

Laravel 已在 Auth\ForgotPasswordControllerAuth\ResetPasswordController 類中包含了發(fā)送密碼重置鏈接電子郵件和重置用戶密碼的邏輯。所有執(zhí)行密碼重置所需的路由可以使用 Artisan 命令 make:auth 來生成:

php artisan make:auth

視圖

當(dāng)執(zhí)行 make:auth 命令時,Laravel 會生成重置密碼所需的所有視圖。 這些視圖位于  resources/views/auth/passwords 目錄中。你可以根據(jù)你應(yīng)用的需要隨意修改這些視圖。

重置密碼后

一旦你定義了重置用戶密碼的路由和視圖,你可以在瀏覽器中訪問 /password/reset 這個路由來重置密碼??蚣苤械? ForgotPasswordController 已包含發(fā)送密碼重置鏈接電子郵件的邏輯,同時 ResetPasswordController 包含了重置用戶密碼的邏輯。

在重置密碼后,用戶將會自動登錄并重定向到 /home。 你可以通過在 ResetPasswordController 中定義一個 redirectTo 屬性來自定義密碼重置后重定向的位置:

protected $redirectTo = '/dashboard';

{note} 默認情況下,密碼重置令牌會在一小時后過期。你可以通過 config/auth.php 文件中的密碼重置  expire 選項對此進行修改。

自定義

自定義身份驗證看守器

在你的 auth.php 配置文件中,你可以配置多個「看守器」,可以用來定義多個用戶表的身份驗證行為。你可以自定義框架中的 ResetPasswordController ,通過重寫該控制器中的  guard  方法來使用你所選擇的看守器。這個方法應(yīng)當(dāng)返回一個看守器實例:

use Illuminate\Support\Facades\Auth;protected function guard(){ 
   return Auth::guard('guard-name');
 }

自定義密碼代理

在你的 auth.php 配置文件中,你可以配置多個密碼「代理」,可以用來重置多個用戶表上的密碼。你可以自定義框架中的 ForgotPasswordControllerResetPasswordController , 通過重寫控制器中的  broker 方法來使用你所選擇的代理:

use Illuminate\Support\Facades\Password;
/**
 * 獲取在密碼重置期間使用的代理。
 *
 * @return PasswordBroker
 */
 protected function broker(){  
   return Password::broker('name');
 }

自定義密碼重置郵件

你可以輕松地修改用于向用戶發(fā)送密碼重置鏈接的通知類。首先,重寫  User 模型中的 sendPasswordResetNotification 方法。 在此方法中,你可以使用任何你所選擇的通知類來發(fā)送通知。該方法接收的第一個參數(shù)是密碼重置令牌  $token

/**
 * 發(fā)送密碼重置通知。
 *
 * @param  string  $token
 * @return void
 */
 public function sendPasswordResetNotification($token){ 
    $this->notify(new ResetPasswordNotification($token));
 }
本文章首發(fā)在 LearnKu.com 網(wǎng)站上。