tp5.1 验证码的使用

 

切记!!!!!!!!!!!!

tp5.1使用的验证码版本是  2.*   ,看清楚,1.*的不行,3.*也不行

我刚开始用的是1.*,

首先报的是  captcha_src  方法不存在

不知咋的了,然后又报  \think\captcha\CaptchaController@index  然后又报 方法不存在,又报类不存在,又是控制器不存在。。。。

反正一大堆的问题。。。。。。。。。吐槽一下,tp真的比不过laravel,差的太远。。。

1、composer安装验证码

composer require topthink/think-captcha 2.*

2、配置访问路由

路由:Route::get('captcha','@admin/login/captcha')->name('captcha');

 

你可 能也见过  这样配置路由的  这样的路由返回的直接是个图片  也就是验证码  

Route::get('captcha/[:id]', "\\think\\captcha\\CaptchaController@index");//访问图片需要

Route::get('captcha','@admin/login/captcha')->name('captcha');

 

这是我接口返回的数据 域名+src即可访问到图片,这样前端就可以很方便的使用了

{"src":"\/captcha\/92722035f816ac657112","uniqid":"92722035f816ac657112"}

 

至此,关于tp5.1的验证码的使用就结束了,网上一大堆过时的配置,远古配置,都是复制粘贴的然后成为自己的帖子,毫无价值可言。

 

 

3、常规的使用讲明白了,下面说说,做接口开发的时候的细节

web,h5一般没事,但是若是作为app的接口,那么可能会出现session_id不一致的问题,即,前台的输入验证码的session_id是一个,后台验证时却是另一个session_id,为了避免这种情况,我们把session_id

存到缓存中,下面说下具体的做法(也是接口开发的一种通用做法--------------大牛请忽视)

3.1修改验证码的源码

 

 

3.2具体使用

具体的使用是在登录校验时用的它

//根据验证码标识,从缓存中取出session_id 并重新设置session_id
        session_id(cache('session_id_' . $params['uniqid']));
        // 进行验证码校验 使用手动校验
        if (!captcha_check($params['code'], $params['uniqid'])) {
            // 验证码错误
            $this->fail('验证码错误');
        }

 

posted @ 2020-10-10 16:09  养猪至富  阅读(611)  评论(0编辑  收藏  举报