hotzhan / think-verifycode
为ThinkPHP发送验证码的最简单方式。
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: 2024-09-16 12:20:19 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(); }