您现在的位置是: 网站首页> PHP> ThinkPHP ThinkPHP
ThinkPHP6登录页面使用验证码
Smile 2019-11-23 07:32:33 PHP ThinkPHP 阅读:1479
简介搭建后台时,登录页面需要验证码防止暴力破解,在一般的商城中的登录注册中也经常见得到验证码,下面简单介绍下ThinkPHP6中如何在登录注册页面中使用验证码
1、首先使用Composer安装think-captcha扩展包:
composer require topthink/think-captcha
2、生成验证码
(1)生成验证码 url 路径,然后 img 标签中引入(推荐)
<div><img src="{:captcha_src()}" alt="captcha" /></div>
(2)直接生成 img 标签的验证码
<div>{:captcha_img()}</div>
注:上面两种如果是多应用模式下,你需要自己注册一个验证码的路由,如下
Route::get('captcha/[:config]','\\think\\captcha\\CaptchaController@index');
(3)自定义生成验证码,在控制器中生成,如下
控制器中记得要引入
use think\captcha\facade\Captcha;
<?php
namespace app\index\controller;
use think\captcha\facade\Captcha;
class Index
{
public function verify()
{
return Captcha::create();
}
}
接下来给验证码地址注册路由
Route::get('verify','index/verify');
最后在页面中生成验证码
<img src="{:url('index/verify')}" alt="captcha" />
3、验证验证码
(1)在验证器中验证
$this->validate($data,[
'captcha|验证码'=>'require|captcha'
]);
(2)使用内置的函数手动验证
if(!captcha_check($captcha)){
// 验证失败
};
(3)使用Captcha类的check方法验证
$captcha = new Captcha();
if( !$captcha->check($value))
{
// 验证失败
}
特别提醒:验证码库需要开启Session才能生效,开启如下
在应用app目录下找到全局中间件middleware.php文件,去除session中间件的注释
<?php
// 全局中间件定义文件
return [
// 全局请求缓存
// \think\middleware\CheckRequestCache::class,
// 多语言加载
// \think\middleware\LoadLangPack::class,
// Session初始化
\think\middleware\SessionInit::class
];
很赞哦! (0)