user->isLoggedIn()) { $this->redirect(App::DESTINATION_AFTER_SIGN_IN); } } public function actionOut(): void { if ($this->user->isLoggedIn()) { $this->user->logout(); $this->flashSuccess('_front.sign.out.success'); } $this->redirect(App::DESTINATION_AFTER_SIGN_OUT); } protected function createComponentLoginForm(): BaseForm { $form = $this->formFactory->forBackend(); $form->addEmail('email') ->setRequired(true); $form->addPassword('password') ->setRequired(true); $form->addCheckbox('remember') ->setDefaultValue(true); $form->addSubmit('submit'); $form->onSuccess[] = [$this, 'processLoginForm']; return $form; } public function processLoginForm(BaseForm $form): void { try { $this->user->setExpiration($form->values->remember ? '14 days' : '20 minutes'); $this->user->login($form->values->email, $form->values->password); } catch (AuthenticationException $e) { $form->addError('Invalid username or password'); return; } $this->redirect(App::DESTINATION_AFTER_SIGN_IN); } }