Esempio n. 1
0
     } elseif (isset($query['openid.mode']) || isset($query['openid_mode'])) {
         $openid_mode = '';
         if (isset($query['openid.mode'])) {
             $openid_mode = $query['openid.mode'];
         } else {
             if (isset($query['openid_mode'])) {
                 $openid_mode = $query['openid_mode'];
             }
         }
         if ($openid_mode == 'cancel') {
             COM_updateSpeedlimit('login');
             echo COM_refresh($_CONF['site_url'] . '/users.php?msg=90');
         } else {
             $openid = $handler->getOpenID();
             $req = new ConsumerRequest($openid, $query, 'GET');
             $response = $consumer->handle_response($req);
             $response->doAction($handler);
         }
     } else {
         COM_updateSpeedlimit('login');
         echo COM_refresh($_CONF['site_url'] . '/users.php?msg=91');
     }
     // end OpenID remote authentication method
     // begin OAuth authentication method(s)
 } elseif ($_CONF['user_login_method']['oauth'] && isset($_GET['oauth_login'])) {
     $modules = SEC_collectRemoteOAuthModules();
     $active_service = count($modules) == 0 ? false : in_array($_GET['oauth_login'], $modules);
     if (!$active_service) {
         $status = -1;
         COM_errorLog("OAuth login failed - there was no consumer available for the service:" . $_GET['oauth_login']);
     } else {
Esempio n. 2
0
function dispatch()
{
    // generate a dictionary of arguments
    $query = formArgstoDict();
    // create consumer and handler objects
    $consumer = new SimpleConsumer();
    $handler = new SimpleActionHandler($query, $consumer);
    // extract identity url from arguments.  Will be null if absent from query.
    $identity_url = isset($query['identity_url']) ? $query['identity_url'] : null;
    if ($identity_url) {
        $ret = $consumer->find_identity_info($identity_url);
        if (!$ret) {
            setAlert(sprintf('Unable to find openid server for identity url %s', $identity_url));
        } else {
            // found identity server info
            list($identity_url, $server_id, $server_url) = $ret;
            // build trust root - this examines the script env and builds
            // based on your running location.  In practice this may be static.
            // You will likely want it to be your entire website, not just
            // this script.
            $trust_root = isset($_SERVER['SCRIPT_URI']) ? $_SERVER['SCRIPT_URI'] : 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
            // build url to application for use in creating return_to
            $app_url = isset($_SERVER['SCRIPT_URI']) ? $_SERVER['SCRIPT_URI'] : 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
            // create return_to url from app_url
            $return_to = $handler->createReturnTo($app_url, $identity_url);
            // handle the request
            $redirect_url = $consumer->handle_request($server_id, $server_url, $return_to, $trust_root);
            // redirect the user-agent to the server
            my_redirect($redirect_url);
        }
    } else {
        if (isset($query['openid.mode']) || isset($query['openid_mode'])) {
            // got a request from the server.  build a Request object and pass
            // it off to the consumer object.  OpendIDActionHandler handles
            // the various end cases (see above).
            $openid = $handler->getOpenID();
            $req = new ConsumerRequest($openid, $query, 'GET');
            $response = $consumer->handle_response($req);
            // let our SimpleActionHandler do the work
            $response->doAction($handler);
        }
    }
}