验证码的使用
1.前言
本小节主要介绍 ThinkPHP
提供的验证码,验证码主要用于前端网页表单验证,防止数据重复提交或者恶意多次提交,本小节主要介绍一下验证码的使用,验证码的原理很简单,就是服务后端通过生成某个验证码图片,然后同时把验证码中对应的答案内容存入缓存,然后访问者必须要输入正确内容才能验证通过,需要注意的是实际业务中若是更加严格的验证方式,可以使用手机短信验证更加安全。
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();
}
}
如下图所示:
在浏览器中请求结果如下:
4.验证码验证
这里以之前添加学生接口为例,可以添加如下代码:
$captcha = $this->request->param('captcha');
if(!captcha_check($captcha)){
// 验证失败
throw new HttpException(401, "验证码验证失败");
}else{
echo "验证成功";
}
如下图所示:
下面演示验证失败的情况:
下面演示验证成功的情况:
5.小结
本小节主要介绍了 ThinkPHP
提供的验证码如何生成,然后在接口中可以校验验证码是否正确,验证码使用一次之后就失效了,可以有效地防止数据的重复提交或恶意提交,在实际业务中,通常使用第三方验证,如短信验证,拼图验证等等。
Tips: 代码仓库:https://gitee.com/love-for-poetry/tp6
本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。