topthink/think-captcha 2.* 验证码前后端分离Api登录

请添加图片描述
在官方的这边只有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);
}

前端获取图片的方式:

在这里插入图片描述

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

在这里插入图片描述

完毕!!!

双十一快乐

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

廖圣平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值