only([$this->username(), 'password', 'captcha']); $remember = (bool)$request->input('remember', false); /** @var \Illuminate\Validation\Validator $validator */ $validator = Validator::make($credentials, [ $this->username() => 'required', 'password' => 'required', 'captcha' => 'required', ]); if ($request->input('captcha') != Session::get('captcha')) { $session_captcha = Session::get('captcha'); //Session::forget('captcha'); return response()->json([ 'success' => false, 'message' => 'The captcha['.$session_captcha.'] is incorrect. Please refresh the page and try again.', 'refresh_captcha' => true, // 通知前端刷新验证码 ], 422);; // 422 表示 Unprocessable Entity } else { //Session::forget('captcha'); } unset($credentials['captcha']); if ($validator->fails()) { return $this->validationErrorsResponse($validator); } if ($this->guard()->attempt($credentials, $remember)) { // 登录成功后返回登录响应 return $this->sendLoginResponse($request); } return $this->validationErrorsResponse([ $this->username() => $this->getFailedLoginMessage(), ]); } /** * 重写登录控制器 * @param Content $content * @return Content */ function getLogin(Content $content) { $lang = request()->query('lang'); if(!empty($lang)) { switchLanguage($lang); return response()->json(['success' => true, 'lang' => $lang]); } if ($this->guard()->check()) { return redirect($this->getRedirectPath()); } return $content->full()->body(view($this->view)); } /** * Model-form for user setting. * * @return Form */ protected function settingForm() { return new Form(new Administrator(), function (Form $form) { $form->action(admin_url('auth/setting')); $form->disableCreatingCheck(); $form->disableEditingCheck(); $form->disableViewCheck(); $form->tools(function (Form\Tools $tools) { $tools->disableView(); $tools->disableDelete(); }); $form->display('username', trans('admin.username')); $form->text('name', trans('admin.name'))->required(); $form->password('old_password', trans('admin.old_password')); $form->password('password', trans('admin.password')) ->minLength(5) ->maxLength(20) ->customFormat(function ($v) { if ($v == $this->password) { return; } return $v; }); $form->password('password_confirmation', trans('admin.password_confirmation'))->same('password'); $form->ignore(['password_confirmation', 'old_password']); // 添加语言选择的下拉框 // $form->select('language', trans('admin.language')) // ->options(config('dictionary.languages')) // ->default('en') // ->required();; // 设置默认语言 $form->saving(function (Form $form) { if ($form->password && $form->model()->password != $form->password) { $form->password = bcrypt($form->password); } if (! $form->password) { $form->deleteInput('password'); } }); $form->saved(function (Form $form) { return $form ->response() ->success(trans('admin.update_succeeded')) //->redirect('/'); ->script('setTimeout(() => {location.reload();}, 1000);');//保存成功后刷新页面 }); }); } }