欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Laravel 實現(xiàn)密碼重置功能

 更新時間:2018年02月23日 10:49:31   作者:學院君  
這篇文章主要介紹了Laravel 實現(xiàn)密碼重置功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

簡介

想要快速實現(xiàn)該功能?只需要在新安裝的 Laravel 應用下運行 php artisan make:auth (如果你已經(jīng)執(zhí)行過此命令,可忽略),然后在瀏覽器中訪問 http://your-app.dev/register 或者其他分配給應用的 URL,該命令會生成用戶登錄注冊所需要的所有東西,包括密碼重置!

大多數(shù) Web 應用都提供了為用戶重置密碼的功能,Laravel 也不例外,Laravel 提供了用于發(fā)送密碼重置鏈接及實現(xiàn)密碼重置邏輯的便捷方法,而不需要你在每個應用中自己重復實現(xiàn)。

注:在使用 Laravel 提供的密碼重置功能之前, User 模型必須使用了 Illuminate\Notifications\Notifiable trait。

數(shù)據(jù)庫相關

開始之前,先驗證 App\User 模型實現(xiàn)了 Illuminate\Contracts\Auth\CanResetPassword 契約。當然,Laravel 自帶的 App\User 模型已經(jīng)實現(xiàn)了該接口,并使用 Illuminate\Auth\Passwords\CanResetPassword trait 來包含實現(xiàn)該接口需要的方法。

生成重置令牌表遷移

接下來,用來存儲密碼重置令牌的表必須被創(chuàng)建,Laravel 已經(jīng)自帶了這張表的遷移,就存放在 database/migrations 目錄。所以,你所要做的僅僅是運行遷移:

php artisan migrate

這張表就是 password_resets :

 

路由

Laravel 自帶了 Auth\ForgotPasswordControllerAuth\ResetPasswordController 控制器(這兩個控制器類會通過 php artisan make:auth 命令自動生成),分別用于發(fā)送密碼重置鏈接郵件和重置用戶密碼功能。重置密碼所需的路由都已經(jīng)通過 make:auth 命令自動生成了:

php artisan make:auth

對應路由定義在 Illuminate\Routing\Router 的 auth 方法中:

 

視圖

和路由一樣,重置密碼所需的視圖文件也通過 make:auth 命令一并生成了,這些視圖文件位于

resources/views/auth/passwords 目錄下,你可以按照所需對生成的文件進行相應修改。

重置密碼

定義好重置用戶密碼路由和視圖后,只需要在瀏覽器中通過 /password/reset 訪問這個入口路由??蚣茏詭У?ForgotPasswordController 已經(jīng)包含了發(fā)送密碼重置鏈接郵件的邏輯, ResetPasswordController 包含了重置用戶密碼的邏輯:

 

輸入注冊郵箱,點擊發(fā)送密碼重置鏈接,就會發(fā)送密碼重置鏈接到該郵箱:

 

打開郵箱會收到這樣一封重置密碼郵件:

 

點擊重置密碼按鈕,即可進入重置密碼頁面:

 

填寫表單提交之后即可重置密碼。

密碼被重置后,用戶將會自動登錄到應用并重定向到 /home 。你可以通過定義 ResetPasswordController 的 redirectTo 屬性來自定義密碼重置成功后的跳轉鏈接:

protected $redirectTo = '/dashboard';

注:默認情況下,密碼重置令牌一小時內(nèi)有效,你可以通過修改 config/auth.php 文件中的選項 expire 來改變有效時間。

自定義

自定義認證 Guard

在配置文件 auth.php 中,可以配置多個“guards”,以便用于實現(xiàn)基于多用戶表的獨立認證,你可以通過重寫內(nèi)置的 ResetPasswordController 控制器上的 guard 方法來使用你所選擇的 guard,該方法將會返回一個 guard 實例:

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

自定義密碼 broker

在配置文件 auth.php 中,可以配置多個密碼,以便用于重置多個用戶表的密碼 broker,同樣,可以通過重寫自帶的 ForgotPasswordController 和 ResetPasswordController 控制器中的 broker 方法來使用你所選擇的 broker:

use Illuminate\Support\Facades\Password;

/**
 * 獲取密碼重置期間所使用的broker.
 *
 * @return PasswordBroker
 * @translator laravelacademy.org
 */
protected function broker()
{
  return Password::broker('name');
}

自定義密碼重置郵件

你可以很方便地編輯發(fā)送密碼重置鏈接給用戶的通知類實現(xiàn)自定義密碼重置郵件,要實現(xiàn)這一功能,需要重寫 User 模型上的 sendPasswordResetNotification 方法,在這個方法中,可以使用任何你所喜歡的通知類發(fā)送通知,該方法接收的第一個參數(shù)是密碼重置 $token :

/**
 * 發(fā)送密碼重置通知.
 *
 * @param string $token
 * @return void
 */
public function sendPasswordResetNotification($token)
{
  $this->notify(new ResetPasswordNotification($token));
}

總結

以上所述是小編給大家介紹的Laravel 實現(xiàn)密碼重置功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:

相關文章

  • 在PHP中運行Linux命令并啟動SSH服務的例子

    在PHP中運行Linux命令并啟動SSH服務的例子

    這篇文章主要介紹了在PHP中運行Linux命令并啟動SSH服務的例子,因為VPS的SSH服務掛了,導致無法進入服務器,所以想了這么一個辦法,需要的朋友可以參考下
    2014-06-06
  • Symfony2安裝的方法(2種方法)

    Symfony2安裝的方法(2種方法)

    這篇文章主要介紹了Symfony2安裝的方法,較為詳細的分析了2種安裝方法與具體步驟,需要的朋友可以參考下
    2016-02-02
  • php驗證身份證號碼正確性的函數(shù)

    php驗證身份證號碼正確性的函數(shù)

    這篇文章主要為大家分享了兩段php驗證身份證號碼是否正確的函數(shù),感興趣的小伙伴們可以參考一下
    2016-07-07
  • 通過源碼解析Laravel的依賴注入

    通過源碼解析Laravel的依賴注入

    這篇文章主要給大家介紹了如何通過源碼解析Laravel的依賴注入的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-01-01
  • 分享5個非常有用的Laravel Blade指令

    分享5個非常有用的Laravel Blade指令

    這篇文章主要給大家分享介紹了5個非常有用的Laravel Blade指令,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-05-05
  • ubuntu12.04使用c編寫php擴展模塊教程分享

    ubuntu12.04使用c編寫php擴展模塊教程分享

    php語言自帶了很多的擴展模塊,諸如mbstring、gd、pdo等等。有時為了提高效率,需要用C實現(xiàn)其中的一些功能,就可以自行編寫php的擴展模塊
    2013-12-12
  • php解析非標準json、非規(guī)范json的方式實例

    php解析非標準json、非規(guī)范json的方式實例

    這篇文章主要給大家介紹了關于利用php解析非標準json、非規(guī)范json的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • PHP?strstr函數(shù)原型源碼分析

    PHP?strstr函數(shù)原型源碼分析

    這篇文章主要為大家介紹了PHP?strstr函數(shù)原型源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • thinkphp3.2.2實現(xiàn)生成多張縮略圖的方法

    thinkphp3.2.2實現(xiàn)生成多張縮略圖的方法

    這篇文章主要介紹了thinkphp3.2.2實現(xiàn)生成多張縮略圖的方法,通過調用ThinkPHP擴展包的UploadFile類實現(xiàn)針對上傳圖片的縮略圖處理,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • ThinkPHP5 框架引入 Go AOP,PHP AOP編程項目詳解

    ThinkPHP5 框架引入 Go AOP,PHP AOP編程項目詳解

    這篇文章主要介紹了ThinkPHP5 框架引入 Go AOP,PHP AOP編程,結合具體項目項目分析了ThinkPHP5 引入 Go AOP,PHP AOP編程相關概念、原理、操作技巧與注意事項,需要的朋友可以參考下
    2020-05-05

最新評論