驗證碼的使用
1.前言
本小節(jié)主要介紹 ThinkPHP 提供的驗證碼,驗證碼主要用于前端網(wǎng)頁表單驗證,防止數(shù)據(jù)重復提交或者惡意多次提交,本小節(jié)主要介紹一下驗證碼的使用,驗證碼的原理很簡單,就是服務后端通過生成某個驗證碼圖片,然后同時把驗證碼中對應的答案內(nèi)容存入緩存,然后訪問者必須要輸入正確內(nèi)容才能驗證通過,需要注意的是實際業(yè)務中若是更加嚴格的驗證方式,可以使用手機短信驗證更加安全。
2.加載 think-captcha 拓展包
使用如下 composer 命令可加載驗證碼的拓展包:
composer require topthink/think-captcha
如下圖所示:

3.新建一個驗證碼生成接口
3.1 定義路由
//生成驗證碼
Route::get('captcha','app\controller\Study\CaptchaController@createCaptcha');
如下圖所示:

3.2 新建驗證碼生成方法
<?php
namespace app\controller\Study;
use app\BaseController;
use think\captcha\facade\Captcha;
class CaptchaController extends BaseController
{
/**
* 生成驗證碼
* @return \think\Response
*/
public function createCaptcha()
{
return Captcha::create();
}
}
如下圖所示:

在瀏覽器中請求結(jié)果如下:

4.驗證碼驗證
這里以之前添加學生接口為例,可以添加如下代碼:
$captcha = $this->request->param('captcha');
if(!captcha_check($captcha)){
// 驗證失敗
throw new HttpException(401, "驗證碼驗證失敗");
}else{
echo "驗證成功";
}
如下圖所示:

下面演示驗證失敗的情況:

下面演示驗證成功的情況:

5.小結(jié)
本小節(jié)主要介紹了 ThinkPHP 提供的驗證碼如何生成,然后在接口中可以校驗驗證碼是否正確,驗證碼使用一次之后就失效了,可以有效地防止數(shù)據(jù)的重復提交或惡意提交,在實際業(yè)務中,通常使用第三方驗證,如短信驗證,拼圖驗證等等。
Tips: 代碼倉庫:https://gitee.com/love-for-poetry/tp6
愛因詩賢 ·
2025 imooc.com All Rights Reserved |