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. 通知类也创建好了, 现在要做的就是以邮件的方式把通知发送出去。

发送的方式有两种。
第一种是通过Laravel自动生成的认证模块 user.php 里写一个发送邮件的方法。
第二种是使用Notification门脸类。
Notification::send($users, new ResetPassword($token))
这里我们就主要了解一下第一种方法。

4. 我们打开user.php 在最下面写一个public 方法
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 在配置中的该邮箱地址 会收到一个 邮箱。 里面都是英文的内容,我们需要把他修改成中文。
那么打开第二步运行的命令生成的 Notification文件下的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 这个时候只需要在中间件middleware文件夹下的RedirectIfAuthenticated.php 将里面的内容修改为如下图所示。

image.png
9. 大功告成!!! 谢谢观看~
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自cr180大神DiscuzX2.5完整目录结构【source程序文件库】 /source/admincp后台...
    cndaqiang阅读 890评论 1 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,687评论 25 708
  • 1.写在前面 本文主要介绍的是zabbix的编译安装过程,包含它的基础环境LNMP,虽然zabbix官方一般推荐的...
    天之蓝色阅读 2,568评论 0 16
  • 长长的流水几近枯竭 这就奇了怪了 沿岸分明是柳喑花明,草色青翠 说没就没的感觉,最好 是了无牵挂 风和雨,就在它的...
    江城妖怪阅读 208评论 2 4