3 changed files with 134 additions and 117 deletions
@ -0,0 +1,128 @@ |
|||
<?php |
|||
|
|||
namespace app\controller; |
|||
|
|||
use app\BaseController; |
|||
use app\model\User as UserModel; |
|||
use app\validate\User as UserValidate; |
|||
use think\exception\ValidateException; |
|||
use think\facade\Request; |
|||
|
|||
class Passport extends BaseController |
|||
{ |
|||
/** |
|||
* 用户注册 |
|||
* @return array |
|||
* @throws \think\db\exception\DataNotFoundException |
|||
* @throws \think\db\exception\DbException |
|||
* @throws \think\db\exception\ModelNotFoundException |
|||
* @author whj |
|||
* @date 2023-08-22 17:04 |
|||
*/ |
|||
public function register() |
|||
{ |
|||
$data = Request::param(); |
|||
|
|||
try { |
|||
// 验证用户输入 |
|||
validate(UserValidate::class)->scene('register')->check($data); |
|||
|
|||
// 验证手机号短信验证码 |
|||
$userModel = new UserModel(); |
|||
$smsCode = $data['sms_code']; |
|||
$phone = $data['phone']; |
|||
|
|||
if (!isset($data['invite_code'])) $data['invite_code'] = ''; |
|||
$invite_code = $data['invite_code']; |
|||
|
|||
if (!empty($invite_code) && !$userModel->verifyInviteCode($invite_code)) { |
|||
return $this->renderError('邀请码无效'); |
|||
} |
|||
|
|||
if (!$userModel->verifySmsCode($phone, $smsCode)) { |
|||
return $this->renderError('短信验证码错误'); |
|||
} |
|||
|
|||
// 注册用户 |
|||
if ($userModel->register($data)) { |
|||
return $this->renderSuccess('注册成功'); |
|||
} else { |
|||
return $this->renderSuccess('手机号已注册'); |
|||
} |
|||
} catch (ValidateException $exception) { |
|||
return $this->renderError($exception->getMessage()); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 用户登录 |
|||
* @return array |
|||
* @throws \think\db\exception\DataNotFoundException |
|||
* @throws \think\db\exception\DbException |
|||
* @throws \think\db\exception\ModelNotFoundException |
|||
* @author whj |
|||
* @date 2023-08-22 17:04 |
|||
*/ |
|||
public function login() |
|||
{ |
|||
$data = Request::param(); |
|||
|
|||
try { |
|||
// 验证用户输入 |
|||
validate(UserValidate::class)->scene('login')->check($data); |
|||
|
|||
// 用户登录 |
|||
$userModel = new UserModel(); |
|||
$user = $userModel->login($data); |
|||
|
|||
if ($user['status']) { |
|||
|
|||
$userinfo = ['id' => $user['data']['id'], 'username' => $user['data']['username']]; |
|||
$token = ['token'=>signToken($userinfo)]; |
|||
|
|||
return $this->renderSuccess('登陆成功',$token); |
|||
} else { |
|||
return $this->renderError($user['msg']); |
|||
} |
|||
} catch (ValidateException $exception) { |
|||
return $this->renderError($exception->getMessage()); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 找回密码 |
|||
* @return array |
|||
* @throws \think\db\exception\DataNotFoundException |
|||
* @throws \think\db\exception\DbException |
|||
* @throws \think\db\exception\ModelNotFoundException |
|||
* @author whj |
|||
* @date 2023-08-22 17:22 |
|||
*/ |
|||
public function retrieve() |
|||
{ |
|||
$data = Request::param(); |
|||
|
|||
try { |
|||
// 验证用户输入 |
|||
validate(UserValidate::class)->scene('retrieve')->check($data); |
|||
|
|||
$userModel = new UserModel(); |
|||
$phone = $data['phone']; |
|||
$smsCode = $data['sms_code']; |
|||
|
|||
if (!$userModel->verifySmsCode($phone, $smsCode)) { |
|||
return $this->renderError('短信验证码错误'); |
|||
} |
|||
|
|||
$user = $userModel->retrieve($data); |
|||
|
|||
if ($user['status']) { |
|||
return $this->renderSuccess('密码重置成功'); |
|||
} else { |
|||
return $this->renderError($user['msg']); |
|||
} |
|||
} catch (ValidateException $exception) { |
|||
return $this->renderError($exception->getMessage()); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue