找回密码验证码总说错误,和注册不是同一条Tigshop开源商城链路

发布时间:2026/9/20 21:47:19
找回密码验证码总说错误,和注册不是同一条Tigshop开源商城链路 注册时验证码收得到也能顺利注册一到找回密码验证码照样收得到可一填进去就死活说「验证码错误或已失效」。这现象本身就把范围圈得很小了——短信通道是通的验证码也确实发出去、用户也收到了否则注册那条根本走不通。所以问题不在通道在「验证」这一步。很多人一上来就去查短信配置、查余额、查签名白费劲。注册能发能验说明账号、签名、余额全正常。既然验证码都收到了却校验不过那只能是「发」和「验」这两头对不上。走一遍发码和验码的代码发验证码的入口在php/app/api/controller/user/Login.php的sendMobileCode()底层调SmsService::sendCode($mobile, $event)。先纠正一个常见的误解tigshop 的验证码短信并不是按场景分模板的。看php/app/service/admin/common/sms/SmsService.phppublicfunctionsendCode(string$mobile,string$eventlogin):bool{return$this-sendSms($mobile,code,$this-creatCode($mobile,$event));}publicfunctioncreatCode(string$mobile,string$eventlogin):string{$coderand(100000,999999);Cache::set($event.mobileCode:.$mobile,$code,$this-expireTime);return$code;}不管什么场景sendCode一律走sendSms($mobile, code, ...)所有验证码共用同一个「code」模板。真正区分场景的是$event验证码存进缓存的 key 是{$event}mobileCode:{$mobile}校验时checkCode也按这个 key 取。publicfunctioncheckCode(string$mobile,string$code,string$eventlogin):bool{returnCache::get($event.mobileCode:.$mobile)$code;}问题就在 event 对不上Login.php里找回密码校验手机号的checkMobile()event 是写死的forget_passwordpublicfunctioncheckMobile(){$mobile$this-request-all(mobile,);$code$this-request-all(code,);$eventforget_password;$resultapp(UserService::class)-mobileValidate($mobile,$code,$event);return$this-success($result);}而前端找回密码页发验证码时如果没把 event 一起传成forget_passwordsendMobileCode就用默认的login。结果验证码存进了loginmobileCode:xxx校验却去读forget_passwordmobileCode:xxx两个 key 前缀不一样用户填得再对也永远说错误。解决办法很直接前端找回密码页发码时把 event 带上和后端校验对齐。// 找回密码页请求发送验证码时sendMobileCode({mobile,event:forget_password})改完再走一遍验证码就对上了。整个过程一行后端逻辑都没动就是前端漏传了个参数。顺带盯的两个点改这条链路的时候有两处我一贯会顺手确认跟这次的直接原因无关但值得一并看。一是防枚举。用户存在性提示别写成「该用户不存在」那等于告诉别人哪些手机号注册过、方便刷库。不管号存不存在对外统一返回「验证码已发送」存在才真发。二是密码存储。重置写新密码时跟着标品走UserService::modifyPassword()用的是password_hash($password, PASSWORD_DEFAULT)照它来。别自己图省事上md5一套系统里两种密码格式下次登录校验直接对不上。下次再遇到「注册能、找回不能」这类问题先别翻短信通道去比这两条链路传的 event/场景值对不对得上十有八九就在那。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询