Laravel - восстановить пароль по электронной почте

задняя часть PHP Laravel
Забыть пароль и восстановить его по электронной почте больше соответствует текущей ситуации, но логика сбивает с толку, поэтому я разберусь здесь. Пожалуйста, посмотрите вниз
1. Создать ссылку на кнопку забыли пароль

按钮

<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. Теперь мы перешли к интерфейсу отправки и заполнения электронных писем, в это время нам нужно создать класс уведомлений`

php artisan make:notification ResetPassword(при условии, что имя класса называетсяResetPassword)

3. Класс уведомления также создан, и теперь все, что нужно сделать, это отправить уведомление по электронной почте.

Есть два способа отправки. Первый — написать метод отправки писем в модуле аутентификации user.php, автоматически сгенерированном Laravel. Второй заключается в использованииNotificationКласс фасада.Notification::send($users, new ResetPassword($token))Здесь мы в основном понимаем первый метод.

4. Открываемuser.phpНапишите публичный метод внизу
public function sendPasswordResetNotification($token) {
    $this->notify(new ResetPassword($token));
}
5. Теперь нам нужно настроить.envФайл выглядит следующим образом: (почтовый ящик QQ в качестве примера)
MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME=675983959@qq.com  
MAIL_PASSWORD=fzzbaradqwfsbfgd    填写的是授权码
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=675983959@qq.com
MAIL_FROM_NAME=SHOP商城

Примечание. Если это почтовый ящик qq 163, вам необходимо установить его самостоятельно.

На этом этапе функция в основном может быть реализована. можно отправить письмо...


6. В это время мы заходим в интерфейс, введенный на первом шаге, заполняем номер и адрес электронной почты и нажимаем отправить

image.png
после отправкиMAIL_FROM_ADDRESS=675983959@qq.comНа адрес электронной почты в конфигурации будет отправлено электронное письмо. Это все на английском языке, нам нужно изменить его на китайский язык. Затем откройте файл уведомлений, сгенерированный командой, запущенной на втором шаге.ResetPassword.php


    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->subject('重置密码')
                    ->line('我们已收到您的邮件请求!')
                    ->action('如修改密码请点击', url('/admin/password/reset', $this->token))
                    ->line('谢谢您对我们SHOP商城的支持和信任!');
    }

$this->token 这个通过构造里传进来   在上面 创建一个成员属性 var $token 构造里如下

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

image.png
Так же в шаблоне есть немного английского языка, который тоже можно изменить, причем изменить его можно самостоятельно.

7. Схема эффекта выглядит следующим образом:

image.png

8. Нажмите синюю кнопку, как показано на рисунке, чтобы перейти на страницу сброса пароля, после ее заполнения могут возникнуть проблемы с переходом.

если прыгнул наxxx.dev/homeВ настоящее время вам нужно только находиться в папке промежуточного программного обеспечения в папке промежуточного программного обеспечения.RedirectIfAuthenticated.phpИзмените содержимое внутри, как показано ниже.

image.png

9. Готово! ! ! Спасибо за просмотр~