您现在的位置是: 网站首页> PHP> ThinkPHP ThinkPHP

ThinkPHP6登录页面使用验证码

Smile 2019-11-23 PHP ThinkPHP 阅读:1093

简介搭建后台时,登录页面需要验证码防止暴力破解,在一般的商城中的登录注册中也经常见得到验证码,下面简单介绍下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)

文章评论

站点信息