Findpassword.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. /**
  3. * Index.php
  4. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  5. * =========================================================
  6. * Copy right 2015-2025 山西牛酷信息科技有限公司, 保留所有权利。
  7. * ----------------------------------------------
  8. * 官方网址: http://www.niushop.com.cn
  9. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  10. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  11. * =========================================================
  12. * @author : niuteam
  13. * @date : 2015.1.17
  14. * @version : v1.0.0.0
  15. */
  16. namespace app\api\controller;
  17. use app\model\member\Member as MemberModel;
  18. use app\model\member\Register as RegisterModel;
  19. use app\model\message\Message;
  20. use app\model\message\Sms;
  21. use think\facade\Cache;
  22. class Findpassword extends BaseApi
  23. {
  24. /**
  25. * 邮箱找回密码
  26. */
  27. public function email()
  28. {
  29. $register = new RegisterModel();
  30. $exist = $register->emailExist($this->params['email']);
  31. if (!$exist) {
  32. return $this->response($this->error("", "邮箱不存在"));
  33. } else {
  34. $key = $this->params['key'];
  35. $verify_data = Cache::get($key);
  36. if ($verify_data["email"] == $this->params["email"] && $verify_data["code"] == $this->params["code"]) {
  37. $member_model = new MemberModel();
  38. $res = $member_model->resetMemberPassword($this->params["password"], [ [ "email", "=", $this->params['email'] ] ]);
  39. } else {
  40. $res = $this->error("", "动态码不正确");
  41. }
  42. return $this->response($res);
  43. }
  44. }
  45. /**
  46. * 发送邮箱验证码
  47. * @return string
  48. * @throws \Exception
  49. */
  50. public function emailCode()
  51. {
  52. // 校验验证码
  53. $captcha = new Captcha();
  54. $check_res = $captcha->checkCaptcha();
  55. if ($check_res['code'] < 0) return $this->response($check_res);
  56. $email = $this->params['email'];//注册邮箱号
  57. $register = new RegisterModel();
  58. $exist = $register->emailExist($email);
  59. if (!$exist) {
  60. return $this->response($this->error("", "邮箱不存在"));
  61. } else {
  62. $code = str_pad(random_int(1, 9999), 4, 0, STR_PAD_LEFT);// 生成4位随机数,左侧补0
  63. $message_model = new Message();
  64. $res = $message_model->sendMessage([ "email" => $email, "code" => $code, "support_type" => [ "email" ], "keywords" => "FIND_PASSWORD" ]);
  65. if ($res["code"] >= 0) {
  66. //将验证码存入缓存
  67. $key = 'find_email_code_' . md5(uniqid(null, true));
  68. Cache::tag("find_email_code")->set($key, [ 'email' => $email, 'code' => $code ], 600);
  69. return $this->response($this->success([ "key" => $key ]));
  70. } else {
  71. return $this->response($res);
  72. }
  73. }
  74. }
  75. /**
  76. * 手机号找回密码
  77. */
  78. public function mobile()
  79. {
  80. $register = new RegisterModel();
  81. $exist = $register->mobileExist($this->params['mobile']);
  82. if (!$exist) {
  83. return $this->response($this->error("", "手机号不存在"));
  84. } else {
  85. $key = $this->params['key'];
  86. $verify_data = Cache::get($key);
  87. if ($verify_data["mobile"] == $this->params["mobile"] && $verify_data["code"] == $this->params["code"]) {
  88. $member_model = new MemberModel();
  89. $res = $member_model->resetMemberPassword($this->params["password"], [ [ "mobile", "=", $this->params['mobile'] ] ]);
  90. } else {
  91. $res = $this->error("", "手机动态码不正确");
  92. }
  93. return $this->response($res);
  94. }
  95. }
  96. /**
  97. * 短信验证码
  98. */
  99. public function mobileCode()
  100. {
  101. // 校验验证码
  102. $captcha = new Captcha();
  103. $check_res = $captcha->checkCaptcha();
  104. if ($check_res['code'] < 0) return $this->response($check_res);
  105. $mobile = $this->params['mobile'];//注册手机号
  106. $register = new RegisterModel();
  107. $exist = $register->mobileExist($mobile);
  108. if (!$exist) {
  109. return $this->response($this->error("", "手机号不存在"));
  110. } else {
  111. $code = str_pad(random_int(1, 9999), 4, 0, STR_PAD_LEFT);// 生成4位随机数,左侧补0
  112. $message_model = new Sms();
  113. $res = $message_model->sendMessage([ "mobile" => $mobile, "code" => $code, "support_type" => [ "sms" ], "keywords" => "FIND_PASSWORD" ]);
  114. if ($res["code"] >= 0) {
  115. //将验证码存入缓存
  116. $key = 'find_mobile_code_' . md5(uniqid(null, true));
  117. Cache::tag("find_mobile_code")->set($key, [ 'mobile' => $mobile, 'code' => $code ], 600);
  118. return $this->response($this->success([ "key" => $key ]));
  119. } else {
  120. return $this->response($res);
  121. }
  122. }
  123. }
  124. }