1
0

UserConfirmValidate.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace app\api\validate;
  3. use app\common\enum\notice\NoticeEnum;
  4. use app\common\service\sms\SmsDriver;
  5. use app\common\validate\BaseValidate;
  6. /**
  7. * 用户确认验证器
  8. * Class UserValidate
  9. * @package app\api\validate
  10. */
  11. class UserConfirmValidate extends BaseValidate
  12. {
  13. protected $rule = [
  14. 'code' => 'require',
  15. 'phone'=>'require',
  16. 'sms_code'=>'require|checkConfig',
  17. ];
  18. protected $message = [
  19. 'code.require' => '参数缺失',
  20. 'phone.require' => '手机号缺失',
  21. 'sms_code.require' => '验证码缺失',
  22. ];
  23. public function sceneConfirmDoor()
  24. {
  25. return $this->only(['code','phone','sms_code']);
  26. }
  27. /**
  28. * @notes 登录场景相关校验
  29. * @param $sms_code
  30. * @param $rule
  31. * @param $data
  32. * @return bool|string
  33. * @author 段誉
  34. * @date 2022/9/15 14:37
  35. */
  36. public function checkConfig($sms_code, $rule, $data)
  37. {
  38. if (!isset($sms_code)) {
  39. return '请输入手机验证码';
  40. }
  41. $code = $data['sms_code'];
  42. $smsDriver = new SmsDriver();
  43. $result = $smsDriver->verify($data['phone'], $code, NoticeEnum::OTHER_CAPTCHA);
  44. if ($result) {
  45. return true;
  46. }
  47. return '验证码错误';
  48. }
  49. }