function make_request() { //get openid identifier URL if (empty($_GET['openid_url'])) { $error = "Expected an OpenID URL."; print $error; exit(0); } $openid = $_GET['openid_url']; $consumer = get_consumer(); //begin openid authentication $auth_request = $consumer->begin($openid); //no authentication available if (!$auth_request) { print "Authentication error; not a valid OpenID."; } //add openid extensions to the request $auth_request->addExtension(attach_ax()); //attribute exchange //generate redirect url $return_url = sprintf("%s%s", APP_ROOT, FILE_COMPLETE); $trust_root = sprintf("http://%s%s/", $_SERVER['SERVER_NAME'], dirname($_SERVER['PHP_SELF'])); $redirect_url = $auth_request->redirectURL($trust_root, $return_url); //attach oauth extension parameters to redirect url $hybrid_fields = array('openid.ns.oauth' => 'http://specs.openid.net/extensions/oauth/1.0', 'openid.oauth.consumer' => CONSUMER_KEY); $redirect_url .= '&' . http_build_query($hybrid_fields); //if no redirect available display error message, else redirect if (Auth_OpenID::isFailure($redirect_url)) { print "Could not redirect to server: " . $redirect_url->message; } else { header("Location: " . $redirect_url); } }
function make_request() { //get openid identifier URL if (empty($_GET['openid_url'])) { $error = "Expected an OpenID URL."; print $error; exit(0); } $openid = $_GET['openid_url']; $consumer = get_consumer(); //begin openid authentication $auth_request = $consumer->begin($openid); //no authentication available if (!$auth_request) { echo "Authentication error; not a valid OpenID."; } //add openid extensions to the request $auth_request->addExtension(attach_ax()); //attribute exchange $auth_request->addExtension(attach_sreg()); //simple registration $auth_request->addExtension(attach_pape()); //pape policies $return_url = sprintf("%s%s", APP_ROOT, FILE_COMPLETE); $trust_root = sprintf("http://%s%s/", $_SERVER['SERVER_NAME'], dirname($_SERVER['PHP_SELF'])); //openid v1 - send through redirect if ($auth_request->shouldSendRedirect()) { $redirect_url = $auth_request->redirectURL($trust_root, $return_url); //if no redirect available display error message, else redirect if (Auth_OpenID::isFailure($redirect_url)) { print "Could not redirect to server: " . $redirect_url->message; } else { header("Location: " . $redirect_url); } //openid v2 - use javascript form to send POST to server } else { //build form markup $form_id = 'openid_message'; $form_html = $auth_request->htmlMarkup($trust_root, $return_url, false, array('id' => $form_id)); //if markup cannot be built display error, else render form if (Auth_OpenID::isFailure($form_html)) { print "Could not redirect to server: " . $form_html->message; } else { print $form_html; } } }