第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

驗(yàn)證碼的使用

1.前言

本小節(jié)主要介紹 ThinkPHP 提供的驗(yàn)證碼,驗(yàn)證碼主要用于前端網(wǎng)頁(yè)表單驗(yàn)證,防止數(shù)據(jù)重復(fù)提交或者惡意多次提交,本小節(jié)主要介紹一下驗(yàn)證碼的使用,驗(yàn)證碼的原理很簡(jiǎn)單,就是服務(wù)后端通過(guò)生成某個(gè)驗(yàn)證碼圖片,然后同時(shí)把驗(yàn)證碼中對(duì)應(yīng)的答案內(nèi)容存入緩存,然后訪(fǎng)問(wèn)者必須要輸入正確內(nèi)容才能驗(yàn)證通過(guò),需要注意的是實(shí)際業(yè)務(wù)中若是更加嚴(yán)格的驗(yàn)證方式,可以使用手機(jī)短信驗(yàn)證更加安全。

2.加載 think-captcha 拓展包

使用如下 composer 命令可加載驗(yàn)證碼的拓展包:

composer require topthink/think-captcha

如下圖所示:
圖片描述

3.新建一個(gè)驗(yàn)證碼生成接口

3.1 定義路由

//生成驗(yàn)證碼
Route::get('captcha','app\controller\Study\CaptchaController@createCaptcha');

如下圖所示:
圖片描述

3.2 新建驗(yàn)證碼生成方法

<?php


namespace app\controller\Study;


use app\BaseController;
use think\captcha\facade\Captcha;

class CaptchaController extends BaseController
{
    /**
     * 生成驗(yàn)證碼
     * @return \think\Response
     */
    public function createCaptcha()
    {
        return Captcha::create();
    }
}

如下圖所示:
圖片描述

在瀏覽器中請(qǐng)求結(jié)果如下:
圖片描述

4.驗(yàn)證碼驗(yàn)證

這里以之前添加學(xué)生接口為例,可以添加如下代碼:

$captcha = $this->request->param('captcha');
if(!captcha_check($captcha)){
// 驗(yàn)證失敗
	throw new HttpException(401, "驗(yàn)證碼驗(yàn)證失敗");
}else{
	echo "驗(yàn)證成功";
}

如下圖所示:
圖片描述
下面演示驗(yàn)證失敗的情況:
圖片描述

下面演示驗(yàn)證成功的情況:
圖片描述

5.小結(jié)

本小節(jié)主要介紹了 ThinkPHP 提供的驗(yàn)證碼如何生成,然后在接口中可以校驗(yàn)驗(yàn)證碼是否正確,驗(yàn)證碼使用一次之后就失效了,可以有效地防止數(shù)據(jù)的重復(fù)提交或惡意提交,在實(shí)際業(yè)務(wù)中,通常使用第三方驗(yàn)證,如短信驗(yàn)證,拼圖驗(yàn)證等等。

Tips: 代碼倉(cāng)庫(kù):https://gitee.com/love-for-poetry/tp6