Laravel構建短信驗證碼驗證流程

上一篇文章中寫了如何使用騰訊云的接口發(fā)送短信。
這篇文章來使用短信構建一個“創(chuàng)建驗證碼”+“核對驗證碼”的流程。

第一步:在發(fā)送驗證碼時,將驗證碼與手機號進行持久化。

先在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中加入數(shù)據庫操作,使用Eloquent的updateOrCreate方法。

public function getCode($phone,$code)
    {
        $result = $this->smsServer->sendWithParam(
            '86',
            $phone,
            $this->templateId,  
            [$code,30],
            $this->sms['smsSign']
        );
        //存入數(shù)據庫,使用phone字段進行過濾
        Captcha::updateOrCreate(['phone'=>$phone], ['code'=>$code]);
        return json_decode($result, true);
    }

到這里,將發(fā)送驗證碼與驗證碼持久化的工作做完。

第二步:構建驗證碼驗證接口

直接在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;
        }
    }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
    layjoy閱讀 8,712評論 0 121
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 必備品文檔:DocumentationAPI: API Reference視頻:Laracasts速查表:Lara...
    daos閱讀 1,198評論 0 4
  • 必備品文檔:DocumentationAPI: API Reference視頻:Laracasts速查表:Lara...
    ethanzhang閱讀 5,878評論 0 68
  • 額……前兩周的作業(yè)慢慢補吧。畢竟吃了很多好吃的、見了老公,還買了主材,不是一句兩句說得清楚,恩……先把這周的記錄搞...
    自由意志神馬的閱讀 225評論 0 0

友情鏈接更多精彩內容