美文网首页
Laravel构建短信验证码验证流程

Laravel构建短信验证码验证流程

作者: Invoker_M | 来源:发表于2018-12-11 09:19 被阅读0次

    上一篇文章中写了如何使用腾讯云的接口发送短信。
    这篇文章来使用短信构建一个“创建验证码”+“核对验证码”的流程。

    第一步:在发送验证码时,将验证码与手机号进行持久化。

    先在Mysql中建立一张存放验证码的表,表结构如下


    captcha表结构

    再使用命令行建立一个Captcha的Model

    php artisan make:model Models/Captcha
    

    在模型内指向表,约定好可写的字段为'phone','code':

    //Captcha.php
    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    class Captcha extends Model
    {
        protected $table = 'captchas';
        protected  $fillable = [
            'phone','code'
        ];
    }
    

    接下来在CodeService中加入数据库操作,使用Eloquent的updateOrCreate方法。

    public function getCode($phone,$code)
        {
            $result = $this->smsServer->sendWithParam(
                '86',
                $phone,
                $this->templateId,  
                [$code,30],
                $this->sms['smsSign']
            );
            //存入数据库,使用phone字段进行过滤
            Captcha::updateOrCreate(['phone'=>$phone], ['code'=>$code]);
            return json_decode($result, true);
        }
    

    到这里,将发送验证码与验证码持久化的工作做完。

    第二步:构建验证码验证接口

    直接在CodeService中,添加校验验证码的方法即可

    /**
         * @param $phone 接收验证码的手机号
         * @param $code 需要验证的验证码
         */
        public function checkCode($phone,$code){
            $captcha = Captcha::where(['phone'=>$phone,'code'=>$code])->first();
            if ($captcha){
                $captcha->delete();
                return true;
            }else{
                return false;
            }
        }
    

    相关文章

      网友评论

          本文标题:Laravel构建短信验证码验证流程

          本文链接:https://www.haomeiwen.com/subject/ojzfhqtx.html