3.5. 邮箱认证

邮箱认证

从产品设计上讲,『邮箱认证』能让我们有效地检验用户邮箱的真实性,后续网站可以利用这些真实邮箱来联系上用户,例如评论触发邮件通知,或者重要信件等。

另一方面,『邮箱认证』也会对不良用户起到很好的抑制,此类用户注册后会在网站上创建大量垃圾内容,认证其邮箱,提高了注册用户的难度,有效提高网站内容的品质。

我们将只允许邮箱认证通过的用户使用网站,未认证用户会被引导进入验证邮箱页面。

『邮箱认证』工作机制一般分两步:

  1. 发送认证邮件 —— 将附带认证信息的『认证链接』发送到用户邮箱里;
  2. 检测认证链接 —— 用户打开邮件,点击认证链接进入网站,程序检测 URL 中认证参数的合法性,并渲染对应的页面。

以上流程非常通用,Laravel 默认自带了这个功能,我们可以很方便地进行集成。

捋一下产品思路:

  1. 用户注册成功后,给用户发送一个认证邮件;
  2. 用户登录状态下,如邮箱未认证,重定向到提醒验证邮箱的页面中。

接下来让我们一起来动手开发吧。

修改模型存放位置

Laravel 为我们生成了用户模型文件 app/User.php ,...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
Summer
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
贡献者:2
讨论数量: 22

uu_boy
关于显示邮箱认证路由未定义的问题
11 个点赞 | 5 个回复 | 问答 | 课程版本 5.7
holyLight
为什么要将中间件注册在 StartSession 之后?
2 个点赞 | 3 个回复 | 问答 | 课程版本 5.8
wang66
重新发送邮箱收不到邮件
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
272361997
邮箱不能接受验证信息问题
0 个点赞 | 8 个回复 | 分享 | 课程版本 6.x
PHPHub
邮箱验证报 403
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.7
l521441
报没有定义 verification.verify 路由是什么原因
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.7
FixBug
测试邮箱发送时报错 ErrorException (E_WARNING)
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.8
DoubleJack
邮箱验证 是如何工作的?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.8
深入浅出
求教下对于 implements 理解
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.7
maogu
! $request->is ('email/*', 'logout')
0 个点赞 | 2 个回复 | 问答 | 课程版本 6.x
holyLight
为什么要用 expectsJson 来做区分?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
wanglei1987
添加 dd (Auth::user ()->hasVerifiedEmail ()); 之后提示了 无法调用
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
zjnn
线上环境要怎么使用这里的发送邮件呢?
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
eeeeei
请教,$request->expectsJson ()
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
超级蛋
注册邮箱测试失败,报错 530
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
maogu
Email 另一种简单方式!官方教程
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x
wifi
钩子方法 `registered ()` 为空?这有什么意义呢?
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x
dokiss
如何处理认证连接的 expires 参数
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.7
xingxiaoli
没验证邮箱只提醒一次?
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.7