/** * @SuppressWarnings(PHPMD.ExitExpression) */ public function loginUser() { $returnTo = $this->_controller->absolutePath('login'); $realm = $this->_controller->absoluetPath(''); if (!empty($_POST['openid_identifier'])) { $identifier = $_POST['openid_identifier']; $relayParty = new \OpenID_RelyingParty($returnTo, $realm, $identifier); $authRequest = $relayParty->prepare(); $authExtension = new \OpenID_Extension_AX(\OpenID_Extension::REQUEST); $authExtension->set('type.email', 'http://axschema.org/contact/email'); $authExtension->set('type.firstname', 'http://axschema.org/namePerson/first'); $authExtension->set('type.lastname', 'http://axschema.org/namePerson/last'); $authExtension->set('mode', 'fetch_request'); $authExtension->set('required', 'email,firstname,lastname'); $authRequest->addExtension($authExtension); header('Location: ' . $authRequest->getAuthorizeURL()); exit(0); } $relayParty = new \OpenID_RelyingParty($returnTo, $realm); $arr = explode('?', $_SERVER['REQUEST_URI']); $queryString = isset($arr[1]) ? $arr[1] : ''; if ($queryString) { $message = new \OpenID_Message($queryString, \OpenID_Message::FORMAT_HTTP); $result = $relayParty->verify(new \Net_URL2($returnTo), $message); if ($result->success()) { $this->_controller->getStore()->expire(); $this->_controller->getStore()->touchAuthentication(); $authExtension = new \OpenID_Extension_AX(\OpenID_Extension::RESPONSE, $message); $uniqueName = $message->get('openid.claimed_id'); $email = $authExtension->get('value.email'); $firstName = $authExtension->get('value.firstname'); $lastName = $authExtension->get('value.lastname'); $this->_controller->getStore()->set(self::SESSION_VAR_ID, $uniqueName); $user = $this->_controller->getEntityManager()->getRepository('\\Jazzee\\Entity\\User')->findOneBy(array('uniqueName' => $uniqueName)); if (!$user) { $user = new \Jazzee\Entity\User(); $user->setUniqueName($uniqueName); } $user->setFirstName($firstName); $user->setLastName($lastName); $user->setEmail($email); $this->_controller->getEntityManager()->persist($user); $this->_user = $user; } } }
unset($_SESSION['disable_associations']); if (!count($_POST)) { list(, $queryString) = explode('?', $_SERVER['REQUEST_URI']); } else { // I hate php sometimes $queryString = file_get_contents('php://input'); } $message = new \OpenID_Message($queryString, \OpenID_Message::FORMAT_HTTP); $id = $message->get('openid.claimed_id'); $mode = $message->get('openid.mode'); try { $sep = '?'; if (strpos($returnTo, '?') !== false) { $sep = '&'; } $result = $o->verify(new \Net_URL2($returnTo . $sep . $queryString), $message); if ($result->success()) { $status = "<tr><td>Status:</td><td><font color='green'>SUCCESS!"; $status .= " ({$result->getAssertionMethod()})</font></td></tr>"; } else { if ($bAutologin) { $alres = new Login_AutologinResponse('error', 'Error logging in: ' . $result->getAssertionMethod()); $alres->send(); exit(0); } throw new Exception('Error logging in'); $status = "<tr><td>Status:</td><td><font color='red'>FAIL!"; $status .= " ({$result->getAssertionMethod()})</font></td></tr>"; } } catch (\OpenID_Exception $e) { if ($bAutologin) {