在我写 ​​TP5 前后端分离验证码​​之后不久, 要在TP6上去搞。原来以为有前车之鉴了, 我在tp6搞会很轻松, 没想到他的包更新了 3 版本了。

在我一些列阅读源码之后,我的同事提醒我, 这个Tp 在中国已经很成熟了啊,应该会有这个Api 验证码吧

他的提醒,瞬间刷新了我的思路, 我去开源找一个 thinphp 6 前后端分离的, 看下怎么处理验证码,于是我找到了。

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

在​​登录的代码​​中发现了验证码的生成,一看生成的方式就是被TP摧残的兄弟改写了的

/**
* 获取验证码
*/
public function getCodeImg(){

return app()->make(\app\common\utils\Captcha::class)->create();
}

他和我之前分装tp5的时候的思路是一致的, 把源码copy一份出来,把session 改成cache

遇到这个问题的朋友可以参考上诉的代码,把她的 ​​\app\common\utils\Captcha​​​ copy 一份到你的项目中, 然后再引用他,当然你要确保你的vender 里面有 ​​topthink/think-captcha 3.*​​的版本

如何验证

if(!app()->make(Captcha::class)->check($param['code'])){
return Res::ModelMsg("验证码错误");
}

其实tp6的感觉也有点想要支持 cache ,和tp5 源码不同的是, tp6 是以容器的方式服务的,更高级一点,利用依赖注入的方式,配置config;但是扭扭捏捏的,看上去想改但是又怕什么似的,希望国产框架做得越来越好吧。

topthink/think-captcha 3.* thinkphp6 验证码前后端分离Api登录_验证码_02