验证码能生成,但验证总是失败,本文为此问题的解决笔记。
生成验证码、验证用户输入值得方式参考官方手册:
验证码生成方式
public function verify()
{
return Captcha::create();
}
验证码验证
$data = array();
if (!captcha_check($payload->vcode)) {
$data = ['code' => 'E000001', 'msg' => '验证码错误'];
} else {
$data = ['code' => 0, 'msg' => 'success'];
}
return json($data);
到这里,verify是可以正常生成验证码的,但助手函数验证却无效。
查看框架源码 Captcha.php
实现代码
if (!$this->session->has('captcha')) {
return false;
}
从源码可知是需要Session的。
Thinkphp6默认不开启Session,所以需要我们根据手册Session使用指引,打开Session即可。
// Session初始化
\think\middleware\SessionInit::class