忘記密碼與重設(shè)

2018-02-24 15:52 更新

模型與數(shù)據(jù)表

大多數(shù)的 web 應(yīng)用程序都會提供用戶忘記密碼的功能。為了不讓開發(fā)者重復(fù)實現(xiàn)這個功能,Laravel 提供了方便的方法來發(fā)送忘記密碼通知及密碼重設(shè)的功能。

在開始之前,請先確認(rèn)您的 User 模型實現(xiàn)了 Illuminate\Contracts\Auth\CanResetPassword接口。當(dāng)然,默認(rèn) Laravel 的 User 模型本身就已實現(xiàn),并且引入Illuminate\Auth\Passwords\CanResetPassword來包括所有需要實現(xiàn)的接口方法。

生成 Reminder 數(shù)據(jù)表遷移

接下來,我們需要生成一個數(shù)據(jù)庫表來儲存重設(shè)密碼標(biāo)志。Laravel 默認(rèn)已經(jīng)包含了這個遷移表,放在 database/migrations 的目錄下。你所需要作的只有執(zhí)行遷移:

php artisan migrate

密碼重設(shè)控制器

Laravel 還包含了 Auth\PasswordController 其中包含重設(shè)用戶密碼的功能。甚至一些視圖,可以讓你直接開始使用!視圖放在 resources/views/auth 目錄下。你可以按照你的應(yīng)用程序設(shè)計,自由的修改這些視圖。

你的使用者會收到一封 e-mail,內(nèi)含連接指向 PasswordController 中的 getReset 方法。這個方法會顯示密碼重設(shè)表單,允許用戶重新設(shè)定密碼。在密碼重新設(shè)定完之后,用戶將會自動登錄到應(yīng)用中,然后被重定向到 /home。你可以通過 PasswordController 中的 redirectTo 來定義重設(shè)密碼后要重定向的位置:

protected $redirectTo = '/dashboard';

注意:默認(rèn)情況下,密碼重設(shè) tokens 會在一小時后過期。你可以修改 config/auth.php 文件中的 reminder.expire 更改 這個設(shè)定。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號