thinkphp6 验证码使用笔记

验证码能生成,但验证总是失败,本文为此问题的解决笔记。

生成验证码、验证用户输入值得方式参考官方手册:

验证码生成方式

    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
版权声明

弈心博客


本文首发site_name,转载请附上博文链接!