0
点赞
收藏
分享

微信扫一扫

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


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


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

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

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

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

如果是phpstorm 按 ctrl + r

topthink/think-captcha 2.* 验证码前后端分离Api登录_获取图片_02


再执行

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

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);
}

前端获取图片的方式:

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

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

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

完毕!!!

双十一快乐


举报

相关推荐

0 条评论