切记!!!!!!!!!!!!
tp5.1使用的验证码版本是 2.* ,看清楚,1.*的不行,3.*也不行
我刚开始用的是1.*,
首先报的是 captcha_src 方法不存在
不知咋的了,然后又报 hinkcaptchaCaptchaController@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('验证码错误');
}