/** * Execute the console command. * * @return mixed */ public function handle() { $deleteTokensOlderThan = Carbon::now("UTC")->subHours(24)->toDateTimeString(); CreationToken::where('updated_at', '<=', $deleteTokensOlderThan)->delete(); PasswordReset::where('updated_at', '<=', $deleteTokensOlderThan)->delete(); $this->info("Tokens deleted."); }
public function postReset(Request $request) { $this->validate($request, ['token' => 'required|exists:password_resets,token', 'password' => 'required|confirmed|min:6']); $credentials = $request->only('password', 'password_confirmation', 'token'); $passwordReset = PasswordReset::where('token', '=', $credentials['token'])->first(); $credentials['email'] = $passwordReset->email; $response = Password::reset($credentials, function ($user, $password) { $this->resetPassword($user, $password); }); switch ($response) { case Password::PASSWORD_RESET: return Auth::user(); default: return response(['status' => 'failed'], 422); } }
/** * Attempt to reset the password to a new value * @param PasswordUpdateRequest $request * @param $token * @return $this */ public function updateContactWithNewPassword(PasswordUpdateRequest $request, $token) { if ($this->getThrottleValue("password_update", md5($request->getClientIp())) > 5) { return redirect()->back()->withErrors(trans("errors.tooManyFailedPasswordResets")); } $passwordReset = PasswordReset::where('token', '=', trim($token))->where('updated_at', '>=', Carbon::now("UTC")->subHours(24)->toDateTimeString())->first(); if ($passwordReset === null) { $this->incrementThrottleValue("password_update", md5($token . $request->getClientIp())); return redirect()->action("AuthenticationController@showResetPasswordForm")->withErrors(trans("errors.invalidToken")); } if ($passwordReset->email != $request->input('email')) { $this->incrementThrottleValue("password_update", md5($token . $request->getClientIp())); return redirect()->back()->withErrors(trans("errors.invalidEmailAddress")); } $contactController = new ContactController(); try { $contact = $contactController->getContact($passwordReset->contact_id, $passwordReset->account_id); } catch (Exception $e) { return redirect()->back()->withErrors(trans("errors.couldNotFindAccount")); } try { $contactController->updateContactPassword($contact, $request->input('password')); } catch (Exception $e) { return redirect()->back()->withErrors(trans("errors.failedToResetPassword")); } $passwordReset->delete(); $this->resetThrottleValue("password_update", md5($token . $request->getClientIp())); return redirect()->action("AuthenticationController@index")->with('success', trans("register.passwordReset")); }
/** * @return $this|array|\Illuminate\Http\RedirectResponse */ public function postResetFromEmail() { $email = Input::get('email'); $password = Input::get('password'); $password_confirmation = Input::get('password_confirmation'); $token = Input::get('token'); Validator::make(Input::all(), ['token' => 'required', 'email' => 'required|email', 'password' => 'required|confirmed']); if ($password != $password_confirmation) { return ParseHelperClass::error_message_return(141, "check password value"); } $user_token = PasswordReset::where('email', '=', $email)->where('token', "=", $token)->first(); if (!$user_token) { return redirect()->to('/1/reset-password/' . $token)->withInput()->with('error_message', 'please check the email address')->withErrors(['email' => $email]); } User::where('email', '=', $email)->update(array('password' => Hash::make($password))); return redirect()->to('/1/reset-password/' . $token)->with('success_message', 'Your password are reset'); }
/** * Reset the given user's password. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function postReset(Request $request) { $token = Input::get('token'); if (is_null($token)) { throw new NotFoundHttpException(); } $row = PasswordReset::where("token", '=', $token)->first(); if (!$row) { return redirect("password/email")->withError("This password reset token is invalid."); } $request->offsetSet("email", $row->email); $this->validate($request, ['token' => 'required', 'email' => 'required|email', 'password' => 'required|confirmed|min:6']); $credentials = $request->only('email', 'password', 'password_confirmation', 'token'); $response = Password::reset($credentials, function ($user, $password) { $this->resetPassword($user, $password); }); switch ($response) { case Password::PASSWORD_RESET: return redirect($this->redirectPath())->withMessage("Your Password has been Successfully Changed"); default: return redirect()->back()->withInput($request->only('email'))->withErrors(['email' => trans($response)]); } }