admin/app/api/controller/Findpassword.php

75 lines
2.8 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* ThinkShop商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2015-2025 成都云之牛科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.cdcloudshop.com
* =========================================================
* @author : niuteam
*/
namespace app\api\controller;
use app\model\member\Member as MemberModel;
use app\model\member\Register as RegisterModel;
use app\model\message\Message;
use think\facade\Cache;
class Findpassword extends BaseApi
{
/**
* 手机号找回密码
*/
public function mobile()
{
$register = new RegisterModel();
$exist = $register->mobileExist($this->params['mobile'], $this->site_id);
if (!$exist) {
return $this->response($this->error("", "手机号不存在"));
} else {
$key = $this->params['key'];
$verify_data = Cache::get($key);
if ($verify_data["mobile"] == $this->params["mobile"] && $verify_data["code"] == $this->params["code"]) {
$member_model = new MemberModel();
$res = $member_model->resetMemberPassword($this->params["password"], [["mobile", "=", $this->params['mobile']]]);
} else {
$res = $this->error("", "手机动态码不正确");
}
return $this->response($res);
}
}
/**
* 短信验证码
*/
public function mobileCode()
{
// 校验验证码
$captcha = new Captcha();
$check_res = $captcha->checkCaptcha();
if ($check_res['code'] < 0) return $this->response($check_res);
$mobile = $this->params['mobile'];//注册手机号
$register = new RegisterModel();
$exist = $register->mobileExist($mobile, $this->site_id);
if (!$exist) {
return $this->response($this->error("", "手机号不存在"));
} else {
$code = str_pad(random_int(1, 9999), 4, 0, STR_PAD_LEFT);// 生成4位随机数左侧补0
$message_model = new Message();
$res = $message_model->sendMessage([ 'type' => 'code',"mobile" => $mobile, "site_id" => $this->site_id, "code" => $code, "support_type" => ["sms"], "keywords" => "FIND_PASSWORD"]);
if ($res["code"] >= 0) {
//将验证码存入缓存
$key = 'find_mobile_code_' . md5(uniqid(null, true));
Cache::tag("find_mobile_code")->set($key, ['mobile' => $mobile, 'code' => $code], 600);
return $this->response($this->success(["key" => $key]));
} else {
return $this->response($res);
}
}
}
}