Laravel 重置密碼之發(fā)郵件

忘了密碼通過郵件找回 更符合現(xiàn)在的情形,可是邏輯比較混亂,在此梳理一下。 請接著往下看
1.創(chuàng)建一個(gè)忘了密碼的按鈕鏈接
按鈕
<a href="/admin/password/reset"   //跳到寫郵件地址
class="am-btn am-btn-default am-btn-sm am-fr" style="border-radius: 4px;">忘記密碼</a>
地址可以通過 終端 php artisan route:list 查詢地址鏈接
2. 我們現(xiàn)在已經(jīng)跳到了發(fā)送填寫郵件的界面,這個(gè)時(shí)候我們就需要?jiǎng)?chuàng)建一個(gè)通知類`

php artisan make:notification ResetPassword(假設(shè)類名叫做ResetPassword`)

3. 通知類也創(chuàng)建好了, 現(xiàn)在要做的就是以郵件的方式把通知發(fā)送出去。

發(fā)送的方式有兩種。
第一種是通過Laravel自動(dòng)生成的認(rèn)證模塊 user.php 里寫一個(gè)發(fā)送郵件的方法。
第二種是使用Notification門臉類。
Notification::send($users, new ResetPassword($token))
這里我們就主要了解一下第一種方法。

4. 我們打開user.php 在最下面寫一個(gè)public 方法
public function sendPasswordResetNotification($token) {
    $this->notify(new ResetPassword($token));
}
5. 現(xiàn)在我們要配置一下.env文件 如下:(qq郵箱為例)
MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME=675983959@qq.com  
MAIL_PASSWORD=fzzbaradqwfsbfgd    填寫的是授權(quán)碼
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=675983959@qq.com
MAIL_FROM_NAME=SHOP商城

注意 :如果是qq郵箱 163郵箱需要自行設(shè)置

到了這里功能基本就能實(shí)現(xiàn)了??梢园l(fā)郵件了...


6. 這時(shí)候我們到第一步進(jìn)入的界面 填寫號郵箱點(diǎn)擊發(fā)送

image.png

發(fā)送之后 MAIL_FROM_ADDRESS=675983959@qq.com 在配置中的該郵箱地址 會(huì)收到一個(gè) 郵箱。 里面都是英文的內(nèi)容,我們需要把他修改成中文。
那么打開第二步運(yùn)行的命令生成的 Notification文件下的ResetPassword.php


    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->subject('重置密碼')
                    ->line('我們已收到您的郵件請求!')
                    ->action('如修改密碼請點(diǎn)擊', url('/admin/password/reset', $this->token))
                    ->line('謝謝您對我們SHOP商城的支持和信任!');
    }

$this->token 這個(gè)通過構(gòu)造里傳進(jìn)來   在上面 創(chuàng)建一個(gè)成員屬性 var $token 構(gòu)造里如下

        public function __construct($token)
        {
             $this->token = $token;
        }

image.png

再還有一點(diǎn)模版里的英文也可以更改 , 自行更改。

7. 效果圖如下:
image.png
8. 點(diǎn)擊如圖的藍(lán)色按鈕 會(huì)跳到重置密碼 頁面 填好后 跳轉(zhuǎn)可能會(huì)有問題

如果是跳到了 xxx.dev/home 這個(gè)時(shí)候只需要在中間件middleware文件夾下的RedirectIfAuthenticated.php 將里面的內(nèi)容修改為如下圖所示。

image.png
9. 大功告成?。?! 謝謝觀看~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容