Example #1
1
 public function postReset(Request $request, PasswordBroker $broker)
 {
     $credentials = $request->only('email');
     Validator::make($credentials, ['email' => 'required|email']);
     $response = $broker->sendResetLink($credentials, function ($m) {
         $m->subject('Reset Password');
     });
     switch ($response) {
         case PasswordBroker::RESET_LINK_SENT:
             return response()->json('Password reset sent.');
         case PasswordBroker::INVALID_USER:
             return response()->json(trans($response))->setStatusCode(412, 'Invalid User');
     }
 }
 /**
  * Reset the given user's password.
  *
  * @param  Request  $request
  * @return Response
  */
 public function postChange(Request $request)
 {
     $validator = Validator::make($request->all(), ['token' => 'required', 'old_passwd' => 'required', 'password' => 'required|confirmed'], [], ['old_passwd' => '原密码', 'password' => '新密码']);
     if ($validator->fails()) {
         return Redirect::back()->withInput()->withErrors($validator);
     }
     $auth_array = array('email' => Auth::user()->email, 'password' => Input::get('old_passwd'));
     if (Auth::validate($auth_array)) {
     } else {
         return redirect()->back()->withErrors("请输入正确的密码!");
     }
     $credentials = array('email' => Auth::user()->email, 'password' => Input::get('password'), 'password_confirmation' => Input::get('password_confirmation'), 'token' => Input::get('token'));
     $response = $this->passwords->reset($credentials, function ($user, $password) {
         $user->password = bcrypt($password);
         $user->save();
         $this->auth->login($user);
     });
     switch ($response) {
         case PasswordBroker::PASSWORD_RESET:
             $array = array('email' => Auth::user()->email);
             $token = $this->passwords->getToken($array);
             UserManageLog::insertLog("修改密码", Auth::user()->id, Auth::user()->name, Auth::user()->email, Auth::user()->name . '(' . Auth::user()->email . ')', null, null, $request->ip());
             return view('auth.change_password')->withTips("密码修改成功!")->withToken($token);
         default:
             return redirect()->back()->withErrors(['email' => trans($response)]);
     }
 }
 /**
  * Process a password reset request. This is the last step in the reset process
  *
  * @param $credentials
  * @return mixed|string
  */
 public function resetPassword($credentials)
 {
     $status = $this->passwordBroker->reset($credentials, function ($user, $password) {
         $user->password = app('hash')->make($password);
         if ($user->save()) {
             // auto login the user
             auth()->login($user);
         }
     });
     return $status;
 }
Example #4
0
 /**
  * Reset a users password
  * @param  AuthRequestInterface $request
  * @param  PasswordBroker       $passwords
  * @return Illuminate\Http\Response
  */
 public function postReset(AuthRequestInterface $request, PasswordBroker $passwords)
 {
     $credentials = $request->only('email', 'password', 'password_confirmation', 'token');
     $response = $passwords->reset($credentials, function ($user, $password) {
         $this->resetPassword($user, $password);
     });
     switch ($response) {
         case PasswordBroker::PASSWORD_RESET:
             return $this->passwordWasReset($request);
             break;
         default:
             return $this->passwordWasNotReset($request, $response);
             break;
     }
 }
Example #5
0
 public function postReset()
 {
     $credentials = $this->request->only('email', 'password', 'password_confirmation', 'token');
     $response = $this->password->reset($credentials, function ($user, $password) {
         $user->password = $this->hasher->make($password);
         $user->save();
     });
     switch ($response) {
         case $this->password->INVALID_PASSWORD:
         case $this->password->INVALID_TOKEN:
         case $this->password->INVALID_USER:
             return $this->redirector->back()->with('error', $this->translator->get($response));
         case $this->password->PASSWORD_RESET:
             return $this->redirector->to('/');
     }
 }
 /**
  * Get the user for the given credentials.
  *
  * @param array $credentials
  * @return \Illuminate\Contracts\Auth\CanResetPassword 
  * @throws \UnexpectedValueException
  * @static 
  */
 public static function getUser($credentials)
 {
     return \Illuminate\Auth\Passwords\PasswordBroker::getUser($credentials);
 }
 /**
  * Register the password broker instance.
  *
  * @return void
  */
 protected function registerPasswordBroker()
 {
     $this->app->singleton('auth.password', function ($app) {
         // The password token repository is responsible for storing the email addresses
         // and password reset tokens. It will be used to verify the tokens are valid
         // for the given e-mail addresses. We will resolve an implementation here.
         $tokens = $app['auth.password.tokens'];
         $users = $app['auth']->driver()->getProvider();
         $view = $app['config']['auth.password.email'];
         // The password broker uses a token repository to validate tokens and send user
         // password e-mails, as well as validating that password reset process as an
         // aggregate service of sorts providing a convenient interface for resets.
         $broker = new PasswordBroker($tokens, $users, $app['mailer'], $view);
         // register validator for password
         $broker->validator(function ($credentials) {
             try {
                 return app('xe.user')->validatePassword($credentials['password']);
             } catch (\Exception $e) {
                 return false;
             }
         });
         return $broker;
     });
 }