laravel——实现Email形式的邮箱验证注册以及登陆功能

正文

  • 任务确认
  • 具体操作
    • 实现在laravel下呈现登陆注册按钮
    • 实现点击登陆注册以后确保有相应的功能实现
    • 测试是否能发送邮件
    • 最终可以实现通过邮箱机制来注册
    • 实现忘记密码重置的功能

任务确认

1、实现在laravel下呈现登陆注册按钮
2、实现点击登陆注册以后确保有相应的功能实现
3、测试是否能发送邮件
4、实现通过邮箱机制来注册
5、实现忘记密码重置的功能

具体操作

实现在laravel下呈现登陆注册按钮

首先要terminal切换到xampp文件夹下面的blog文件,否则会报错,之后输入下列的语句:
在这里插入图片描述
之后查看网站首页,默认已经完成了域名的自定义:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第1张图片
划线部分是之前不存在的,运行命令语句后出现。

实现点击登陆注册以后确保有相应的功能实现

修改在xampp/htdocs/blog文件中的.env文件,并且找到数据库的相关信息配置,权重位置是需要我们自己进行设置的,相关配置即是和数据库的连接操作相同,因为这一步就是配置连接,将注册的用户信息写入数据库中:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第2张图片
保存退出之后回到刚刚的terminal窗口,执行命令php artisan migrate用以生成larave登录认证需要的表:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第3张图片
之后回到网站界面点击“REGISTER”,填写信息后会显示注册成功并且自动登陆了!
之后打开数据库查看,由于执行了上一步,数据库中会自动新生成一个“user”表,并且其中保存了的是注册成功了的用户信息(注意,若只执行到这一步时,是不会有email这一列的,并且后面的password列,是已经经过了系统自动加密了的:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第4张图片

测试是否能发送邮件

执行完以上两步,网站的登陆注册功能已经基本完成,但是相对于其它正规的网站,我们还缺了点什么,没错,就是大部分网站都要通过注册人的邮箱发送验证码,来确定用户是否使用的是本人的邮箱,我们先不采取发送验证码的形式,单纯地通过邮箱跳转来完成注册:
首先让我们来测试一下邮箱机制是否能正确运行:
依旧是打开**.env**文件,这一次修改的是邮箱的相关配置信息(注意我们需要修改的是:mail_host中如果你的邮箱使用的是163则不需要修改,qq邮箱则将mail_host后面改为smtp.qq.com;mail_username和mail_from_address填写相同的邮箱地址,当然是自己的邮箱地址;邮箱授权码是需要申请的,具体可以百度“如何获取邮箱授权码”;mail_from_name无所谓的随便填下):
laravel——实现Email形式的邮箱验证注册以及登陆功能_第5张图片
保存关闭退出后,在app\User.php实现调用。如下图划红线部分,
laravel——实现Email形式的邮箱验证注册以及登陆功能_第6张图片
然后再打开routes\web.php,相应代码修改如下图划线,这一步是实现了使用路由中间件来限制未验证邮箱用户不能登录或者访问给定的路由:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第7张图片
测试是否能发送邮件,生成可邮寄类:
在这里插入图片描述
这一条命令会自动在app/Mail文件中生成一个.php文件,文件前缀名依据你命令最后赋予的名字:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第8张图片
打开这个.php文件,并且在末尾的build中输入以下代码:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第9张图片
现在是需要我们手动来新建文件了:在resources/views 目录下创建一个新的 emails 子目录,并在该子目录下创建邮件视图 test.blade.php,初始化测试邮件视图代码如下,这就是等会我们要“自己”给“自己”发送的邮件内容:
在这里插入图片描述
好了,到这里我们可以开始测试发送邮件了,使用 Tinker 测试邮件发送,执行这几条语句,若成功发送,则会返回null:

php artisan tinker
use Mail;
use App\Mail\你的.php文件名;
 Mail::to('你的邮箱地址')->send(new TestMail());

laravel——实现Email形式的邮箱验证注册以及登陆功能_第10张图片
接下来去你的邮箱里面查看,会有一条新的邮件:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第11张图片
可以发送邮件了!

最终可以实现通过邮箱机制来注册

直接点击注册按钮,注意注册的邮箱要写自己的!不然就是去给别人发骚扰邮件,而且自己也无法验证登陆
laravel——实现Email形式的邮箱验证注册以及登陆功能_第12张图片
laravel——实现Email形式的邮箱验证注册以及登陆功能_第13张图片
查看接收到的验证邮件:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第14张图片
按照提示点击按钮,输入注册时的邮箱密码,即可登陆成功。

实现忘记密码重置的功能

用户点击登陆按钮后,却发现自己已经注册过了,但是忘记了自己的密码却没有办法,这时候我们缺少一个重置密码的功能,这一步我们就来实现它:
修改user.php中的代码,验证 App\User 模型是不是实现了 Illuminate\Contracts\Auth\CanResetPassword 契约。划线部分为手动添加的,并且添加实现了这个接口:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第15张图片
访问网站登陆查询,发现login界面多了个忘记密码选项:
laravel——实现Email形式的邮箱验证注册以及登陆功能_第16张图片
点击这个按钮,它会显示叫你输入已经注册过的邮箱账号,填写邮箱地址发送重置密码的连接
laravel——实现Email形式的邮箱验证注册以及登陆功能_第17张图片
laravel——实现Email形式的邮箱验证注册以及登陆功能_第18张图片
后面reset password之后就完成了。

你可能感兴趣的:(软件初使用)