SmsController.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace app\workerapi\controller;
  3. use app\api\logic\SmsLogic;
  4. use app\api\validate\SendSmsValidate;
  5. /**
  6. * 短信
  7. * Class SmsController
  8. * @package app\workerapi\controller
  9. */
  10. class SmsController extends \app\workerapi\controller\BaseApiController
  11. {
  12. public array $notNeedLogin = ['sendCode','verifyCode'];
  13. /**
  14. * @notes 发送短信验证码
  15. * @return \think\response\Json
  16. * @author 段誉
  17. * @date 2022/9/15 16:17
  18. */
  19. public function sendCode()
  20. {
  21. $params = (new SendSmsValidate())->post()->goCheck();
  22. $result = SmsLogic::sendCode($params);
  23. if (true === $result) {
  24. return $this->success('发送成功');
  25. }
  26. return $this->fail(SmsLogic::getError());
  27. }
  28. public function verifyCode()
  29. {
  30. $params = (new SendSmsValidate())->get()->goCheck('verifyCode');
  31. $res = generateCaptcha();
  32. // 存储验证码到缓存,有效期1分钟(60秒)
  33. cache('verifyCode_'.$params['mobile'], $res['captcha'], 60);
  34. $data = [
  35. 'image' => $res['image'],
  36. 'size' => $res['size']
  37. ];
  38. return $this->success('发送成功', $data);
  39. }
  40. }