fromHTML() static public method

static public fromHTML ( $uri, $html )
Example #1
0
 static function fromDiscoveryResult($discoveryResult)
 {
     if ($discoveryResult->isXRDS()) {
         return Auth_OpenID_ServiceEndpoint::fromXRDS($discoveryResult->normalized_uri, $discoveryResult->response_text);
     } else {
         return Auth_OpenID_ServiceEndpoint::fromHTML($discoveryResult->normalized_uri, $discoveryResult->response_text);
     }
 }
Example #2
0
function Auth_OpenID_discoverWithoutYadis($uri, &$fetcher)
{
    $http_resp = @$fetcher->get($uri);
    if ($http_resp->status != 200) {
        return array($uri, array());
    }
    $identity_url = $http_resp->final_url;
    // Try to parse the response as HTML to get OpenID 1.0/1.1 <link
    // rel="...">
    $openid_services = Auth_OpenID_ServiceEndpoint::fromHTML($identity_url, $http_resp->body);
    return array($identity_url, $openid_services);
}
Example #3
0
function Auth_OpenID_discoverWithYadis($uri, &$fetcher)
{
    // Discover OpenID services for a URI. Tries Yadis and falls back
    // on old-style <link rel='...'> discovery if Yadis fails.
    // Might raise a yadis.discover.DiscoveryFailure if no document
    // came back for that URI at all.  I don't think falling back to
    // OpenID 1.0 discovery on the same URL will help, so don't bother
    // to catch it.
    $openid_services = array();
    $http_response = null;
    $response = Services_Yadis_Yadis::discover($uri, $http_response, $fetcher);
    if ($response) {
        $identity_url = $response->uri;
        $openid_services = $response->xrds->services(array('filter_MatchesAnyOpenIDType'));
    }
    if (!$openid_services) {
        return @Auth_OpenID_discoverWithoutYadis($uri, $fetcher);
    }
    if (!$openid_services) {
        $body = $response->body;
        // Try to parse the response as HTML to get OpenID 1.0/1.1
        // <link rel="...">
        $service = Auth_OpenID_ServiceEndpoint::fromHTML($identity_url, $body);
        if ($service !== null) {
            $openid_services = array($service);
        }
    } else {
        $openid_services = Auth_OpenID_makeOpenIDEndpoints($response->uri, $openid_services);
    }
    return array($identity_url, $openid_services, $http_response);
}
function Auth_OpenID_discoverWithoutYadis($uri, &$fetcher)
{
    $http_resp = @$fetcher->get($uri);
    if ($http_resp->status != 200) {
        return array(null, array(), $http_resp);
    }
    $identity_url = $http_resp->final_url;
    // Try to parse the response as HTML to get OpenID 1.0/1.1 <link
    // rel="...">
    $endpoint = new Auth_OpenID_ServiceEndpoint();
    $service = $endpoint->fromHTML($identity_url, $http_resp->body);
    if ($service === null) {
        $openid_services = array();
    } else {
        $openid_services = array($service);
    }
    return array($identity_url, $openid_services, $http_resp);
}