Domanda

Google ha una bella amichevole login OpenID federata utente con la scoperta endpoint automagic:

Questa è implementato in Java Servlet, c'è un PHP equivalente che può essere utilizzato in combinazione con php-OpenID?

Il meccanismo di ricerca, XRDS, è coperta nel seguente documento:

  • groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains

Sembrerebbe qualcosa come "di Diso XRDS-semplici" dovrebbero lavorare ma i test di base non prevede risultati utili.

  • code.google.com/p/diso /

Grazie,

È stato utile?

Soluzione

Ok ho trovato è relativamente semplice per modificare l'implementazione XRDS-semplici per sostenere meccanismo di scoperta Host-Meta di Google. L'avvertimento essendo questo è un meccanismo di scoperta sperimentale all'interno dello spazio dei nomi di Google e dovrebbe cambiare qualche tempo dopo per qualcosa di più adatto per un sistema globale indipendente.

Patch per XRDS-Semplice:

Esempio di utilizzo per la ricerca di URL di identità per alimentare PHP-OpenID:

<?php

require_once 'XRDS.php';
require_once 'XRDS/Discovery.php';

$domain = 'google.com';

$disco = new XRDS_Discovery();
$disco->discovery_methods = array('XRDS_Discovery_Host_Meta');
$xrds = $disco->discover('https://www.google.com/accounts/o8/.well-known/host-meta?hd=' . $domain);

$xrd = $xrds->xrd[0];
$identityUri = $xrd->service[1]->uri[0]->uri;

if (0 == strcmp($xrd->canonicalId, $domain)) {
    echo "identity uri: $identityUri\n\n";
} else {
    echo "discovery failed.\n\n";
}

?>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top