1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- require_once "common.php";
- session_start();
- function getOpenIDURL() {
- // Render a default page if we got a submission without an openid
- // value.
- if (empty($_GET['openid_identifier'])) {
- $error = "Expected an OpenID URL.";
- include 'index.php';
- exit(0);
- }
- return $_GET['openid_identifier'];
- }
- function run() {
- $openid = getOpenIDURL();
- $consumer = getConsumer();
- // Begin the OpenID authentication process.
- $auth_request = $consumer->begin($openid);
- // No auth request means we can't begin OpenID.
- if (!$auth_request) {
- displayError("Authentication error; not a valid OpenID.");
- }
- $sreg_request = Auth_OpenID_SRegRequest::build(
- // Required
- array('nickname'),
- // Optional
- array('fullname', 'email'));
- if ($sreg_request) {
- $auth_request->addExtension($sreg_request);
- }
- $policy_uris = null;
- if (isset($_GET['policies'])) {
- $policy_uris = $_GET['policies'];
- }
- $pape_request = new Auth_OpenID_PAPE_Request($policy_uris);
- if ($pape_request) {
- $auth_request->addExtension($pape_request);
- }
- // Redirect the user to the OpenID server for authentication.
- // Store the token for this authentication so we can verify the
- // response.
- // For OpenID 1, send a redirect. For OpenID 2, use a Javascript
- // form to send a POST request to the server.
- if ($auth_request->shouldSendRedirect()) {
- $redirect_url = $auth_request->redirectURL(getTrustRoot(),
- getReturnTo());
- // If the redirect URL can't be built, display an error
- // message.
- if (Auth_OpenID::isFailure($redirect_url)) {
- displayError("Could not redirect to server: " . $redirect_url->message);
- } else {
- // Send redirect.
- header("Location: ".$redirect_url);
- }
- } else {
- // Generate form markup and render it.
- $form_id = 'openid_message';
- $form_html = $auth_request->htmlMarkup(getTrustRoot(), getReturnTo(),
- false, array('id' => $form_id));
- // Display an error if the form markup couldn't be generated;
- // otherwise, render the HTML.
- if (Auth_OpenID::isFailure($form_html)) {
- displayError("Could not redirect to server: " . $form_html->message);
- } else {
- print $form_html;
- }
- }
- }
- run();
- ?>
|