请添加图片描述
在官方的这边只有session的方式,但是在一些特殊的情况下,前端请求后端数据时候没有带cookie信息,导致这种方式会失败。

方案:改成cache 的方式储存session

复制 Captcha.php 这个文件到项目中

在这个文件中执行如下步骤:

如果是phpstorm 按 ctrl + r

在这里插入图片描述
再执行

在这里插入图片描述

ok 基础类改造成cache 的类就完成了,下面使用方式和官方的方式一样,但是需要传一个id 识别这次请求的用户;

控制器验证:

   
        $t = input('t');

        $obj = new \app\common\System\Captcha();
        if (!$obj->check($code,$t)) {
            return fail('验证码错误');
        }

获取图片的地址:

    public function getVerify()
    {

        $t = input('t');
//        $uniqid = uniqid(mt_rand(100000, 999999));
        $config =    [
            // 验证码字体大小
            'fontSize'    =>    25,
            // 验证码位数
            'length'      =>    4,
            // 关闭验证码杂点
            'useNoise'    =>    false,
            'useCurve'   =>  false,
            'bg'          =>    [255, 255, 255],
            'codeSet'  =>  '0123456789'
        ];
        $obj = new \app\common\System\Captcha(
            $config
        );

        return $obj->entry($t);
}

前端获取图片的方式:

在这里插入图片描述

登录请求的方式要带 验证码的随机数

在这里插入图片描述

完毕!!!

双十一快乐

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐