From 3d218bf7eefad924c4b30e24994df6961cd13dd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=9D=99?= Date: Fri, 3 Dec 2021 14:14:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Auth/ResetPasswordController.php | 45 +++++++++++++++++++ .../Http/Requests/ResetPasswordRequest.php | 33 ++++++++++++++ app/Endpoint/Api/routes.php | 2 + app/Models/SmsCode.php | 2 + resources/lang/zh_CN.json | 3 +- 5 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 app/Endpoint/Api/Http/Controllers/Auth/ResetPasswordController.php create mode 100644 app/Endpoint/Api/Http/Requests/ResetPasswordRequest.php diff --git a/app/Endpoint/Api/Http/Controllers/Auth/ResetPasswordController.php b/app/Endpoint/Api/Http/Controllers/Auth/ResetPasswordController.php new file mode 100644 index 00000000..89e62b67 --- /dev/null +++ b/app/Endpoint/Api/Http/Controllers/Auth/ResetPasswordController.php @@ -0,0 +1,45 @@ +validated(); + + $smsCodeService->validate( + $input['phone'], + SmsCode::TYPE_RESET_PASSWORD, + $input['verify_code'] + ); + + $user = User::where('phone', $input['phone'])->first(); + + if ($user === null) { + throw new BizException(__('The phone number is not registered')); + } + + $user->update([ + 'password' => $input['password'], + ]); + + $user->tokens()->delete(); + + return response()->noContent(); + } +} diff --git a/app/Endpoint/Api/Http/Requests/ResetPasswordRequest.php b/app/Endpoint/Api/Http/Requests/ResetPasswordRequest.php new file mode 100644 index 00000000..fda45607 --- /dev/null +++ b/app/Endpoint/Api/Http/Requests/ResetPasswordRequest.php @@ -0,0 +1,33 @@ + ['bail', 'required', new PhoneNumber()], + 'password' => ['bail', 'required', 'string', 'min:6', 'max:32'], + 'verify_code' => ['bail', 'required', 'string'], + ]; + } +} diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php index e0fa7f7d..06c97210 100644 --- a/app/Endpoint/Api/routes.php +++ b/app/Endpoint/Api/routes.php @@ -1,6 +1,7 @@