예제 #1
0
 public static function pass_recover_success($email, $redirect, $message, $expire_time = 60)
 {
     $now = new \DateTime();
     $now->add(new \DateInterval('PT1H'));
     $token = md5($email . rand());
     if (\App\PasswordReminder::where('email', $email)->count() > 0) {
         \App\PasswordReminder::where('email', $email)->update(array('token' => $token, 'created_at' => $now));
     } else {
         $password_reminder = new \App\PasswordReminder();
         $password_reminder->email = $email;
         $password_reminder->token = $token;
         $password_reminder->created_at = $now;
         $password_reminder->save();
     }
     Mail::send('master::emails.reminder', ['token' => $token], function ($m) use($email) {
         $m->to($email, 'User')->subject(config()->get('app.name') . ' | ' . trans('master::mail.remind_password_title'));
     });
     return redirect($redirect)->with('message_success', $message);
 }
 public function postUpdate(Request $request)
 {
     $error_messages = array('reminder_password.confirmed' => trans('form.password_match_error'));
     $token = $request->input('token');
     $validator = Validator::make($request->all(), \App\User::$rules_edit_pass, $error_messages);
     if ($validator->passes()) {
         $now = new \DateTime();
         if (\App\PasswordReminder::where('token', $token)->count() > 0 && \App\PasswordReminder::where('token', $token)->first()->created_at < $now) {
             $email = \App\PasswordReminder::where('token', $token)->first()->email;
             \App\User::where('email', $email)->update(array('password' => bcrypt($request->input('password'))));
             \App\PasswordReminder::where('token', $token)->delete();
             return redirect('auth/login')->with('message_success', trans('form.password_reset_success'));
         } else {
             return Login::failed_try($validator, 'password/recover', trans('form.password_reset_error'));
         }
     } else {
         return redirect('password/reset/' . $token)->with('message_error', trans('form.password_not_edited'))->withErrors($validator)->withInput();
     }
 }