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);
    }
}
示例#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;
        }
    }
}
<?php

error_reporting(E_ERROR);
require_once "includes.php";
$consumer = get_consumer();
//complete openid process using current app root
$return_url = sprintf("http://%s%s/complete.php", $_SERVER['SERVER_NAME'], dirname($_SERVER['PHP_SELF']));
$response = $consumer->complete($return_url);
//response state - authentication cancelled
if ($response->status == Auth_OpenID_CANCEL) {
    $response_state = 'OpenID authentication was cancelled';
    //response state - authentication failed
} else {
    if ($response->status == Auth_OpenID_FAILURE) {
        $response_state = "OpenID authentication failed: " . $response->message;
        //response state - authentication succeeded
    } else {
        if ($response->status == Auth_OpenID_SUCCESS) {
            //get the identity url and capture success message
            $openid = htmlentities($response->getDisplayIdentifier());
            $response_state = sprintf('OpenID authentication succeeded: <a href="%s">%s</a>', $openid, $openid);
            echo "<h1>RESPONSE</h1>";
            var_dump($response);
            echo "<br /><br />";
            if ($response->endpoint->canonicalID) {
                $response_state .= '<br />XRI CanonicalID Included: ' . htmlentities($response->endpoint->canonicalID);
            }
            //display sreg return data if available
            $response_sreg = Auth_OpenID_SRegResponse::fromSuccessResponse($response)->contents();
            echo "<h1>SReg</h1>";
            var_dump(Auth_OpenID_SRegResponse::fromSuccessResponse($response));
示例#4
0
function consume()
{
    $queues = get_queue_factory();
    $consumer = get_consumer();
    $consumer->consume($queues->create('echo-time'));
}