/** * @param string $username * @param string $password * * @return bool */ public function authenticate($username, $password) { $hasUser = $this->userFacade->hasActiveUserByUsername($username); if (!$hasUser) { return false; } $userTransfer = $this->userFacade->getUserByUsername($username); $isValidPassword = $this->userFacade->isValidPassword($password, $userTransfer->getPassword()); if (!$isValidPassword) { return false; } $userTransfer->setLastLogin((new \DateTime())->format(\DateTime::ATOM)); $token = $this->generateToken($userTransfer); $this->registerAuthorizedUser($token, $userTransfer); $this->userFacade->updateUser(clone $userTransfer); $this->session->migrate(); return true; }