当前位置: 首页 > news >正文

Thinkphp8 验证码: 修改支持前后端分离验证

因前后端分离,跨域获取PHPSESSID较麻烦,通过增加uuid进行前后端简单关联。

1 修改vendor/topthink/think-captcha/src/Captcha.php文件

1.1 修改242行,增加返回 ‘key’ => $generator[‘key’]

// API调用模式if($this->api){return['key'=>$generator['key'],'code'=>implode('',$text),'img'=>'data:image/png;base64,'.base64_encode($content),];}

1.2 修改155行,增加参数$uuid,修改 $key判断

$key=empty($uuid)?$this->session->get('captcha.key'):$uuid;

完整代码如下:

publicfunctioncheck(string$code,string$uuid):bool{if(!$this->session->has('captcha')){returnfalse;}$key=empty($uuid)?$this->session->get('captcha.key'):$uuid;$code=mb_strtolower($code,'UTF-8');$res=password_verify($code,$key);if($res){$this->session->delete('captcha');}return$res;}

2. controller具体实现

/** * 验证码图片接口(返回JSON + base64 + uuid) * @return Json */publicfunctioncaptchaImage():Json{$captcha=Captcha::create();$imgBase64=$captcha['img'];$img=str_replace('data:image/png;base64,','',$imgBase64);returnjson(["msg"=>"操作成功","img"=>$img,"code"=>200,"captchaEnabled"=>true,"uuid"=>$captcha['key']]);}publicfunctionlogin():Json{$params=$this->request->param();if(!Captcha::check($params['code'],$params['uuid'])){returnAjaxUtils::error("验证码错误");}$result=(newSysUserModel())->login($params);returnjson($result);}
http://www.jsqmd.com/news/793157/

相关文章:

  • 基于OpenClaw的微信公众号自动化运营工具wemp-operator详解
  • Bleeding Llama漏洞深度剖析:Ollama CVE-2026-7482让30万台AI服务器“内存裸奔“
  • AI原生文档生成系统深度拆解(SITS 2026架构图首次流出):LLM+DSL+Schema-Driven三重验证机制实测通过ISO/IEC 26514标准
  • AI助手自我进化框架:异步复盘与技能固化工程实践
  • 无实景不建模 孪生自生成:无改造无感追踪技术路径,重构数字孪生与视频孪生交付逻辑
  • POSIX线程编程:从基础到高级实践
  • Multi-CLI MCP:基于MCP协议实现多AI命令行工具无缝协作的服务器
  • 构建AI Agent进化记忆系统:从静态存储到持续学习的实践指南
  • 第十一节:私有知识大脑——为本地 Agent 构建企业级 RAG 检索增强链路
  • STM32F103实战:在CLion中无缝集成CMSIS-DSP库,做一次真正的‘现代’嵌入式开发
  • CIPHR技术:硬件IP保护的密码学革新与实践
  • 从识图模型、平价 Mac 到智能汽车:科技产品正在进入交付能力竞争
  • 基于Taotoken多模型能力为智能客服场景选型
  • ORB-SLAM3实战:从开源解读到移动端部署的挑战与优化
  • 数据流编排工具 diflowy:从核心概念到实战部署全解析
  • 零知识证明与法律科技融合:构建可验证计算驱动的自动化合约执行系统
  • 进程调度/页面置换/磁盘调度算法
  • 【SQLServer】从零到一:SQL Server 2019 核心功能选型与避坑安装指南
  • 【AI技能】跟着费曼学BEV鸟瞰图感知
  • 2026年,湖南口碑好的美缝施工团队,哪家才是真正专业之选?
  • Flutter中如何显示异步数据
  • Starknet智能体经济基础设施:构建自主安全的链上AI代理
  • OBS模糊插件终极指南:5种专业算法让你的直播和视频质量飞跃提升
  • 数据标注工程全解
  • VIRSO:边缘计算中的虚拟传感与神经算子技术
  • AI 一周大事盘点(2026 年 5 月 4 日~2026 年 5 月 10 日)
  • STM32F1 存储与 IAP 核心要点
  • AI网关aigate:统一多模型API,实现智能流量调度与编排
  • Windows下用Cygwin编译ADI的ADRV9009 GitHub工程,手把手搞定Vivado比特流
  • C# WMS 完整极简落地框架