Forget.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | A3Mall
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2020 http://www.a3-mall.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: xzncit <158373108@qq.com>
  8. // +----------------------------------------------------------------------
  9. namespace app\api\validate;
  10. use app\common\models\Setting;
  11. use app\common\validate\Validate;
  12. use think\facade\Db;
  13. class Forget extends Validate {
  14. protected $rule = [
  15. "username" => "require|mobile|checkMobiles",
  16. "password" => "require|checkPasswords",
  17. "code" => "require|checkCodes"
  18. ];
  19. protected $message = [
  20. "username.require" => "请填写手机号码",
  21. "username.mobile" => "您填写的手机号码不正确",
  22. "password.require" => "请填写密码",
  23. "code.require" => "请填写验证码"
  24. ];
  25. protected $scene = [
  26. "forget"=>["username","password","code"]
  27. ];
  28. protected function checkMobiles($value, $rule, $data=[]){
  29. if(!Db::name("users")->where("mobile",$value)->count()){
  30. return "您填写的手机号码不存在!";
  31. }
  32. return true;
  33. }
  34. protected function checkPasswords($value, $rule, $data=[]){
  35. if(preg_match("/(\s)/i",$value)){
  36. return "密码不能包含空格字符!";
  37. }
  38. $len = mb_strlen($value,"UTF8");
  39. if($len < 6 || $len > 18){
  40. return "密码长度请控制在6-18字符!";
  41. }
  42. return true;
  43. }
  44. protected function checkCodes($value, $rule, $data=[]){
  45. if(empty($data["username"])){
  46. return "请填写手机号码";
  47. }
  48. if(!$sms = Db::name("users_sms")->where("mobile",$data["username"])->where("code",$value)->order("id","DESC")->find()){
  49. return "您填写的验证码错误";
  50. }
  51. $config = Setting::getArrayData("sms");
  52. if(($sms["create_time"] + (60 * $config["duration_time"])) < time()){
  53. return "您的验证码已过期,请重新发送。";
  54. }
  55. return true;
  56. }
  57. }