hotzhan / think-verifycode
The easiest way for ThinkPHP to send verify code.
1.0.2
2024-03-16 05:42 UTC
Requires
- overtrue/easy-sms: ^2.6.0
- phpmailer/phpmailer: ^6.9.1
This package is auto-updated.
Last update: 2025-03-16 13:43:30 UTC
README
- ThinkPHP验证码发送库(邮件+短信 两种方式可用)
- 短信发送依赖 easy-sms
- 邮件发送依赖 phpmailer (需安装php-imap扩展,如果是宝塔面板在对应php版本设置里可直接安装)
ThinkPHP适用版本
- ThinkPHP 6 / 8
安装本库
composer require hotzhan/think-verifycode
配置文件
- config目录里的sms.php和mail.php文件会自动复制到thinkphp的config目录里
- 如果没有自动复制,请自己手动复制一下
- 具体配置参考配置文件里有详细注释
- 短信支持多平台多网关同时配置,如果1个网关发送失败,会根据配置的依次发送直到成功为止
- 邮件支持多服务器配置,支持qq/163等个人邮箱,可以配置多个邮箱,1个发送失败会按根据配置按顺序依次发送直到成功为止
如何使用
发送短信验证码示例
use hotzhan\verifycode\sms\SmsVerifyCode; //注册验证码 public function regSms(SmsVerifyCode $sms) { //前端获取到手机号码 $param = request()->param(); $phoneNumber = $param['mobile']; //发送注册验证码 $sms->sendRegisterSms($phoneNumber); //返回验证码发送结果,结果里包含token,需要返回给前端,验证时前端需要提交这个token return $sms->getResultData(); } //验证码校验 public function checkSms(SmsVerifyCode $sms) { $param = request()->param(); //$param里的字段根据自己前端的设置 $phoneNumber = $param['mobile']; $code = $param['code']; $token = $param['smstoken']; //校验验证码和对应的手机号 $res = $sms->checkSmsVerifyCode($token, $code, $phoneNumber); if(!$res)//验证码校验不通过 return $sms->getResultData(); }
发送邮件验证码示例
use hotzhan\verifycode\mail\MailVerifyCode; //注册验证码 public function regMail(MailVerifyCode $mail) { //前端获取到手机号码 $param = request()->param(); $mailAddress = $param['address']; //12345678@qq.com //给对应邮箱发送验证码 $mail->sendVerifyCodeMail($mailAddress) //返回验证码发送结果,结果里包含token,需要返回给前端,验证时前端需要提交这个token return $mail->getResultData(); } //验证码校验 public function checkMail(MailVerifyCode $mail) { $param = request()->param(); //$param里的字段根据自己前端的设置 $mailAddress = $param['address']; $code = $param['code']; $token = $param['mailtoken']; //校验验证码和对应的邮箱 $res = $mail->checkMailVerifyCode($token, $code, $mailAddress); if(!$res)//验证码校验不通过 return $sms->getResultData(); }