Пример #1
0
/**
 * getServiceContent 
 * 
 * @param mixed $identifier Identifier
 * @param bool  $skipcache  Whether or not to skip cache
 * 
 * @access public
 * @return void
 */
function getServiceContent($identifier, $skipcache)
{
    $content = null;
    if (!$skipcache) {
        $store = OpenID::getStore();
        $d = $store->getDiscover($identifier);
        if ($d === false) {
            $d = new OpenID_Discover($identifier);
            try {
                $result = $d->discover();
                if ($result === false) {
                    $content = 'Discovery failed';
                    return $content;
                }
                $store->setDiscover($d);
            } catch (OpenID_Exception $e) {
                return get_class($e) . ': ' . $e->getMessage();
            }
        } else {
            $cache = true;
        }
    } else {
        $d = new OpenID_Discover($identifier);
        try {
            $result = $d->discover();
            if ($result === false) {
                $content = 'Discovery failed';
                return $content;
            }
        } catch (OpenID_Exception $e) {
            return get_class($e) . ': ' . $e->getMessage();
        }
    }
    $content = array();
    if (!empty($cache)) {
        $content['cached'] = true;
    }
    $content['OpenID_Discover'] = $d->services;
    $extensions = array('OAuth', 'AX', 'SREG11', 'UI');
    $supported = array();
    foreach ($extensions as $extension) {
        $supported[$extension] = $d->extensionSupported($extension);
    }
    $content['Extensions Supported'] = $supported;
    return $content;
}
Пример #2
0
 /**
  * Static helper method for retrieving discovered information from cache if it
  * exists, otherwise executing discovery and storing results if they are 
  * positive.
  * 
  * @param string       $id    URI Identifier to discover
  * @param OpenID_Store $store Instance of OpenID_Store
  * 
  * @return OpenID_Discover|false OpenID_Discover on success, false on failure
  */
 public static function getDiscover($id, OpenID_Store_Interface $store)
 {
     $discoverCache = $store->getDiscover($id);
     if ($discoverCache instanceof OpenID_Discover) {
         return $discoverCache;
     }
     $discover = new OpenID_Discover($id);
     $result = $discover->discover();
     if ($result === false) {
         // @codeCoverageIgnoreStart
         return false;
         // @codeCoverageIgnoreEnd
     }
     $expireTime = null;
     if ($discover->services->getExpiresHeader()) {
         $expireTime = strtotime($discover->services->getExpiresHeader()) - time();
     }
     $store->setDiscover($discover, $expireTime);
     return $discover;
 }