function openid_discovery

Perform discovery on a claimed ID to determine the OpenID provider endpoint.

Discovery methods are provided by the hook_openid_discovery_method_info and could be further altered using the hook_openid_discovery_method_info_alter.

Parameters

$claimed_id: The OpenID URL to perform discovery on.

Return value

The resulting discovery array from the first successful discovery method, which must contain following keys:

  • 'services' (required) an array of discovered services (including OpenID

version, endpoint URI, etc).

  • 'claimed_id' (optional) new claimed identifer, found by following HTTP

redirects during the services discovery. If all the discovery method fails or if no appropriate discovery method is found, FALSE is returned.

2 calls to openid_discovery()
openid_begin in modules/openid/openid.module
The initial step of OpenID authentication responsible for the following:
openid_complete in modules/openid/openid.module
Completes OpenID authentication by validating returned data from the OpenID Provider.

File

modules/openid/openid.module, line 419

Code

function openid_discovery($claimed_id) {
    module_load_include('inc', 'openid');
    $methods = module_invoke_all('openid_discovery_method_info');
    drupal_alter('openid_discovery_method_info', $methods);
    // Execute each method in turn and return first successful discovery.
    foreach ($methods as $method) {
        $discovery = $method($claimed_id);
        if (!empty($discovery)) {
            return $discovery;
        }
    }
    return FALSE;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.