Nodjoy

是谁来自山川湖海 却囿于昼夜厨房与爱


  • 首页

  • 技术

  • 笔记

  • 杂记

  • 分享

  • 归档

  • 关于

  • 站点监控

  • 服务监控

  • 搜索

  • GitHub

  • Instagram

  • Weibo

  • Email

  • Bilibili

  • Bento

  • 抖音

  • 打赏

  • 在线笔记

  • 在线文档

  • 域名证书管理

  • 云盘

  • Download Hub

  • DockerHub Mirror

  • Harbor

  • 我的小店

  • Quick Reference

  • Linux 命令查询

  • Mock 模拟数据

  • 文档预览服务
推荐
  • 科学推荐(按量付费)
友链
  • milu杰克
  • 小菜
close

使用Laravel邮件发送实现用户的验证&注册业务

时间: 2020-08-04   |   分类: 笔记     |   阅读: 568 字 ~2分钟

注册数据处理方法中添加token并触发邮件发送

//用户注册数据处理
public function store(Request $request)
{
    $data = $this->validate($request,[   
       'name'  =>  'required|min:4',
       'email'  =>  'required|email|unique:users',
       'password'  => 'required|min:6|confirmed',
    ]);
    $data['password'] = bcrypt($data['password']);
    $data['email_token'] = Str::random(10);
    $user = User::create($data);
    //发送注册邮件
    \Mail::to($user)->send(new RegMail($user));
    session()->flash('success','请查看邮箱完成注册验证');
    return redirect('/');
}

app/Mail/RegMail.php

namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class RegMail extends Mailable
{
    use Queueable, SerializesModels;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public $user;   //定义公共属性会自动分配到视图模板
    public function __construct($user)
    {
        //
        $this->user = $user;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('mail.reg');
    }
}

用户邮件验证视图reg.blade.php

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>点击链接验证邮箱</title>
</head>
<body>
<div>
    <a href="http://blog01.com/confirmEmailToken/{{$user['email_token']}}">点击链接完成验证</a>
</div>
</body>
</html>

点击邮件中的链接验证

//用户验证邮件路由
Route::get('confirmEmailToken/{token}','UserController@confirmEmailToken')->name('confirmEmailToken');

邮件验证方法

    public function confirmEmailToken($token)
    {
        $user = User::where('email_token',$token)->first();
        if($user){
            $user ->email_active = true;
            $user ->save();
            session()->flash('success','验证成功');
            \Auth::login($user);
            return redirect('/');
        }
        session()->flash('danger','邮箱验证失败');
        return redirect('/');
    }

喜欢这篇文章的话 打赏一下吧!

Wechat Alipay

#PHP# #Laravel#
Git 版 本 控 制
Laravel Api开发之laravel/passport授权包的使用及基本配置
Nodjoy

Nodjoy

Developer & Acceleration Engineer⏩

GitHub Instagram Weibo Email Bilibili Bento 抖音 打赏
52 日志
4 分类
64 标签
工具站
在线笔记 在线文档 域名证书管理 云盘 Download Hub DockerHub Mirror Harbor 我的小店 Quick Reference Linux 命令查询 Mock 模拟数据 文档预览服务
推荐
  • 科学推荐(按量付费)
友情链接
  • milu杰克
  • 小菜
京ICP备17004223号 © 2020 - NODJOY.
Powered by - HUGO
Theme by - NexT
访客量 -
0%