diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 598743b..b5e3b3a 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -2,10 +2,11 @@ namespace App\Http\Controllers; +use App\Http\Requests\ForgotPasswordRequest; use App\Http\Requests\PostLoginRequest; +use App\Http\Requests\ResetPasswordRequest; use App\Models\User; use Illuminate\Auth\Events\PasswordReset; -use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Password; @@ -30,10 +31,8 @@ public function logout() return redirect('login')->with('success', 'Logout success, goodbye '.$name); } - public function forgotPassword(Request $request) + public function forgotPassword(ForgotPasswordRequest $request) { - $request->validate(['email' => 'required|email']); - $status = Password::sendResetLink( $request->only('email') ); @@ -43,14 +42,8 @@ public function forgotPassword(Request $request) : back()->withErrors(['email' => __($status)]); } - public function resetPassword(Request $request) + public function resetPassword(ResetPasswordRequest $request) { - $request->validate([ - 'token' => 'required', - 'email' => 'required|email', - 'password' => 'required|min:8|confirmed', - ]); - $status = Password::reset( $request->only('email', 'password', 'password_confirmation', 'token'), function (User $user, string $password) { diff --git a/app/Http/Requests/ForgotPasswordRequest.php b/app/Http/Requests/ForgotPasswordRequest.php new file mode 100644 index 0000000..35632b8 --- /dev/null +++ b/app/Http/Requests/ForgotPasswordRequest.php @@ -0,0 +1,31 @@ +|string> + */ + public function rules(): array + { + return [ + 'email' => [ + 'required', + 'email', + ], + ]; + } +} diff --git a/app/Http/Requests/ResetPasswordRequest.php b/app/Http/Requests/ResetPasswordRequest.php new file mode 100644 index 0000000..9462724 --- /dev/null +++ b/app/Http/Requests/ResetPasswordRequest.php @@ -0,0 +1,39 @@ +|string> + */ + public function rules(): array + { + return [ + 'token' => [ + 'required', + ], + 'email' => [ + 'required', + 'email', + ], + 'password' => [ + 'required', + 'min:8', + 'confirmed', + ], + ]; + } +}