validate([ 'email' => ['required', 'email'], ]); $status = Password::sendResetLink($request->only('email')); return $status === Password::RESET_LINK_SENT ? response()->json(['message' => __($status)]) : response()->json(['message' => __($status)], 422); } public function resetPassword(Request $request): JsonResponse { $request->validate([ 'token' => ['required'], 'email' => ['required', 'email'], 'password' => ['required', 'confirmed', Rules\Password::defaults()], ]); $status = Password::reset( $request->only('email', 'password', 'password_confirmation', 'token'), function (User $user) use ($request) { $user->forceFill([ 'password' => Hash::make($request->password), 'remember_token' => Str::random(60), ])->save(); // A password reset often means "I lost my phone" - revoke every // existing API token rather than leaving old devices signed in. $user->tokens()->delete(); event(new PasswordReset($user)); } ); return $status === Password::PASSWORD_RESET ? response()->json(['message' => __($status)]) : response()->json(['message' => __($status)], 422); } }