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);
    }
}
Example #2
0
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;
        }
    }
}