濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Laravel 實(shí)現(xiàn)密碼重置功能

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

熱門(mén)標(biāo)簽:電話(huà)機(jī)器人危險(xiǎn)嗎 400電話(huà)辦理福州市 400電話(huà)申請(qǐng)方法收費(fèi) 長(zhǎng)沙crm外呼系統(tǒng)業(yè)務(wù) 江蘇外呼電銷(xiāo)機(jī)器人報(bào)價(jià) 南寧高頻外呼回?fù)芟到y(tǒng)哪家好 深圳外呼系統(tǒng)收費(fèi) 離石地圖標(biāo)注 專(zhuān)業(yè)電話(huà)機(jī)器人批發(fā)商

簡(jiǎn)介

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

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

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

數(shù)據(jù)庫(kù)相關(guān)

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

生成重置令牌表遷移

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

php artisan migrate

這張表就是 password_resets :

 

路由

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

php artisan make:auth

對(duì)應(yīng)路由定義在 Illuminate\Routing\Router 的 auth 方法中:

 

視圖

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

resources/views/auth/passwords 目錄下,你可以按照所需對(duì)生成的文件進(jìn)行相應(yīng)修改。

重置密碼

定義好重置用戶(hù)密碼路由和視圖后,只需要在瀏覽器中通過(guò) /password/reset 訪(fǎng)問(wèn)這個(gè)入口路由。框架自帶的 ForgotPasswordController 已經(jīng)包含了發(fā)送密碼重置鏈接郵件的邏輯, ResetPasswordController 包含了重置用戶(hù)密碼的邏輯:

 

輸入注冊(cè)郵箱,點(diǎn)擊發(fā)送密碼重置鏈接,就會(huì)發(fā)送密碼重置鏈接到該郵箱:

 

打開(kāi)郵箱會(huì)收到這樣一封重置密碼郵件:

 

點(diǎn)擊重置密碼按鈕,即可進(jìn)入重置密碼頁(yè)面:

 

填寫(xiě)表單提交之后即可重置密碼。

密碼被重置后,用戶(hù)將會(huì)自動(dòng)登錄到應(yīng)用并重定向到 /home 。你可以通過(guò)定義 ResetPasswordController 的 redirectTo 屬性來(lái)自定義密碼重置成功后的跳轉(zhuǎn)鏈接:

protected $redirectTo = '/dashboard';

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

自定義

自定義認(rèn)證 Guard

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

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

自定義密碼 broker

在配置文件 auth.php 中,可以配置多個(gè)密碼,以便用于重置多個(gè)用戶(hù)表的密碼 broker,同樣,可以通過(guò)重寫(xiě)自帶的 ForgotPasswordController 和 ResetPasswordController 控制器中的 broker 方法來(lái)使用你所選擇的 broker:

use Illuminate\Support\Facades\Password;

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

自定義密碼重置郵件

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

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

總結(jié)

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

您可能感興趣的文章:
  • 示例詳解Laravel重置密碼代碼重構(gòu)

標(biāo)簽:南昌 濱州 白酒營(yíng)銷(xiāo) 興安盟 太原 南京 株洲 曲靖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Laravel 實(shí)現(xiàn)密碼重置功能》,本文關(guān)鍵詞  Laravel,實(shí)現(xiàn),密碼,重置,功能,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Laravel 實(shí)現(xiàn)密碼重置功能》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Laravel 實(shí)現(xiàn)密碼重置功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    久治县| 马公市| 綦江县| 上栗县| 阿坝| 平山县| 昔阳县| 咸宁市| 红桥区| 南和县| 永吉县| 东阿县| 综艺| 永福县| 铁岭市| 灵丘县| 论坛| 龙江县| 合阳县| 松潘县| 台北市| 诸城市| 洪湖市| 紫阳县| 彭山县| 静宁县| 大洼县| 双辽市| 噶尔县| 蒙山县| 普兰店市| 泊头市| 淄博市| 泰顺县| 泽库县| 中牟县| 花莲市| 兴城市| 六枝特区| 大同县| 义乌市|