我是靠谱客的博主 背后电源,这篇文章主要介绍必看!TP6验证码验证失败的原因及解决方法,现在分享给大家,希望可以做个参考。

首先使用Composer安装think-captcha扩展包:

复制代码
1
composer require topthink/think-captcha
登录后复制

控制器引入

复制代码
1
use thinkcaptchafacadeCaptcha;
登录后复制

生成验证码

复制代码
1
2
3
4
public function verify() { return Captcha::create(); }
登录后复制

验证验证码

复制代码
1
2
3
if( !Captcha::check($vercode)) { return json(['code'=>1001, 'msg'=>'验证码错误'); }
登录后复制

check的方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/** * 验证验证码是否正确 * @access public * @param string $code 用户验证码 * @return bool 用户验证码是否正确 */ public function check(string $code): bool { if (!$this->session->has('captcha')) { return false; } $key = $this->session->get('captcha.key'); $code = mb_strtolower($code, 'UTF-8'); $res = password_verify($code, $key); if ($res) { $this->session->delete('captcha'); } return $res; }
登录后复制

从以上check方法可以看出来验证码验证是需要session的,而Thinkphp6默认是不开启的,需要根据手册初始化一下

在应用app目录下找到全局中间件middleware.php文件,把下面注释的代码thinkmiddlewareSessionInit::class开启就行了

复制代码
1
2
3
4
5
6
7
8
9
// 全局中间件定义文件 return [ // 全局请求缓存 // thinkmiddlewareCheckRequestCache::class, // 多语言加载 // thinkmiddlewareLoadLangPack::class, // Session初始化 thinkmiddlewareSessionInit::class ];
登录后复制

以上就是必看!TP6验证码验证失败的原因及解决方法的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是背后电源最近收集整理的关于必看!TP6验证码验证失败的原因及解决方法的全部内容,更多相关必看!TP6验证码验证失败内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(119)

评论列表共有 0 条评论

立即
投稿
返回
顶部