diff options
author | Cash Costello <cash.costello@gmail.com> | 2011-12-11 06:38:23 -0500 |
---|---|---|
committer | Cash Costello <cash.costello@gmail.com> | 2011-12-11 06:38:23 -0500 |
commit | d9bf22a0e29c2a70049443a0ae8521a2c0492c8b (patch) | |
tree | c7599a9169d5def7df56c480ad6d67f312443d6f /models/openid-php-openid-782224d/examples/consumer/finish_auth.php | |
download | elgg-d9bf22a0e29c2a70049443a0ae8521a2c0492c8b.tar.gz elgg-d9bf22a0e29c2a70049443a0ae8521a2c0492c8b.tar.bz2 |
initial commit for git repository
Diffstat (limited to 'models/openid-php-openid-782224d/examples/consumer/finish_auth.php')
-rw-r--r-- | models/openid-php-openid-782224d/examples/consumer/finish_auth.php | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/models/openid-php-openid-782224d/examples/consumer/finish_auth.php b/models/openid-php-openid-782224d/examples/consumer/finish_auth.php new file mode 100644 index 000000000..b19a665cf --- /dev/null +++ b/models/openid-php-openid-782224d/examples/consumer/finish_auth.php @@ -0,0 +1,98 @@ +<?php + +require_once "common.php"; +session_start(); + +function escape($thing) { + return htmlentities($thing); +} + +function run() { + $consumer = getConsumer(); + + // Complete the authentication process using the server's + // response. + $return_to = getReturnTo(); + $response = $consumer->complete($return_to); + + // Check the response status. + if ($response->status == Auth_OpenID_CANCEL) { + // This means the authentication was cancelled. + $msg = 'Verification cancelled.'; + } else if ($response->status == Auth_OpenID_FAILURE) { + // Authentication failed; display the error message. + $msg = "OpenID authentication failed: " . $response->message; + } else if ($response->status == Auth_OpenID_SUCCESS) { + // This means the authentication succeeded; extract the + // identity URL and Simple Registration data (if it was + // returned). + $openid = $response->getDisplayIdentifier(); + $esc_identity = escape($openid); + + $success = sprintf('You have successfully verified ' . + '<a href="%s">%s</a> as your identity.', + $esc_identity, $esc_identity); + + if ($response->endpoint->canonicalID) { + $escaped_canonicalID = escape($response->endpoint->canonicalID); + $success .= ' (XRI CanonicalID: '.$escaped_canonicalID.') '; + } + + $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response); + + $sreg = $sreg_resp->contents(); + + if (@$sreg['email']) { + $success .= " You also returned '".escape($sreg['email']). + "' as your email."; + } + + if (@$sreg['nickname']) { + $success .= " Your nickname is '".escape($sreg['nickname']). + "'."; + } + + if (@$sreg['fullname']) { + $success .= " Your fullname is '".escape($sreg['fullname']). + "'."; + } + + $pape_resp = Auth_OpenID_PAPE_Response::fromSuccessResponse($response); + + if ($pape_resp) { + if ($pape_resp->auth_policies) { + $success .= "<p>The following PAPE policies affected the authentication:</p><ul>"; + + foreach ($pape_resp->auth_policies as $uri) { + $escaped_uri = escape($uri); + $success .= "<li><tt>$escaped_uri</tt></li>"; + } + + $success .= "</ul>"; + } else { + $success .= "<p>No PAPE policies affected the authentication.</p>"; + } + + if ($pape_resp->auth_age) { + $age = escape($pape_resp->auth_age); + $success .= "<p>The authentication age returned by the " . + "server is: <tt>".$age."</tt></p>"; + } + + if ($pape_resp->nist_auth_level) { + $auth_level = escape($pape_resp->nist_auth_level); + $success .= "<p>The NIST auth level returned by the " . + "server is: <tt>".$auth_level."</tt></p>"; + } + + } else { + $success .= "<p>No PAPE response was sent by the provider.</p>"; + } + } + + include 'index.php'; +} + +run(); + +?>
\ No newline at end of file |