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 @@