广场
实验室
Sign in
Laravel结合Redis发送邮箱验证码
糊涂
类别:
Laravel
最后修改于:
2021年08月26日 09:51:54
浏览:
728
我们在某些业务上,需要注册邮箱,为避免邮箱注册混乱、乱用他人邮箱,这就需要对邮箱进行验证。 ### 一、设计思路 1、用户输入邮箱,点击验证 2、后端接收到邮箱后,随机生成一个code,用邮箱作为key,code为值保存到redis中,并使用laravel封闭的Mail类发送给用户 3、用户收到邮件后,获取验证码并输入,后端把email、code和redis保存的值做一个匹对 ### 二、前期准备 1、修改.env配置文件里面email部分的内容 MAIL_MAILER=smtp MAIL_HOST=smtp.qq.com MAIL_PORT=465 MAIL_USERNAME=xxxx@qq.com MAIL_PASSWORD=xxxxxxxxxxxxxxxxx MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=xxxx@qq.com MAIL_FROM_NAME=糊涂 2、使用命令创建`EmailVerifyController.php`控制器 ``` php artisan make:controller Index/EmailVerifyController ``` 3、在routes/web.php中注册相关路由 ```php input("email"); $code = rand(100000, 999999);//验证码 $expireTime = 60 * 3;//过期时间 $EMAIL_VERIFY_CODE = "email:verify:code:" . $email;//redis key Redis::setex($EMAIL_VERIFY_CODE, $expireTime, $code); Mail::send("mail.SendEmailCode", ["code" => $code, "email" => $email], function (Message $message) use ($email) { $message->to($email); $message->subject("糊涂个人博客——邮箱验证"); }); if (Mail::failures()) { return ["code" => 0, "msg" => "warning"]; } return ["code" => 1, "msg" => "success"]; } /** * 验证 * @param Request $request * @return array */ public function verify(Request $request) { $email = $request->input("email"); $code = $request->input("code"); $EMAIL_VERIFY_CODE = "email:verify:code:" . $email;//redis key $isCode = Redis::get($EMAIL_VERIFY_CODE); if ($isCode && $isCode === $code) { return ["code" => 1, "msg" => "success"]; } return ["code" => 0, "msg" => "warning"]; } } ``` 2、SendEmailCode.blade.php模块 ```html
Document
亲爱的用户:
您好!
感谢您使用糊涂个人博客开发平台。您正在进行邮箱验证,请在验证码输入框中输入此次验证码
{$code}
(3分钟内有效)以完成验证。
如非本人操作,请忽略此邮件,由此给您带来的不便请谅解!
糊涂个人博客开发平台
``` ### 四、实现效果 自己可以根据相关需要修改样式代码 
标签:
vue
laravel
版权声明:本文为博主原创文章,遵循
CC 4.0 BY-SA
版权协议,转载请附上原文出处链接和本声明!
本文链接:https://www.lpya.cn/detail/23
评论列表
sckd
回复
sckd@sckd
回复
{{item.user.e_name}}
回复
{{itemTwo.parentuser.e_name}}@{{itemTwo.subuser.e_name}}
回复
检测你正在使用手机端,为了更好的用户体验,请跳转手机版本。
确 定