Domanda

Sto usando la libreria janRain Php per OpenId e la scoperta di yadis e non importa quello che faccio, lavorerò in cose come user.openid.org o il mio provider, ma se provo a usare l'endpoint di Google, non riesco a ottenere alcun informazioni di scoperta.

Anche se eseguo l'esempio di rilevamento per la libreria janrain, ottengo il risultato successivo Rivendicato

Identifier  http://www.google.com/accounts/o8/id
No OpenID services discovered.

e succede lo stesso se aggiungo https: // prima dell'url.

Probabilmente la mia domanda non è come farlo funzionare, ma se è effettivamente possibile, quali altre opzioni ho (che girano sul mio sito, nessuna autorizzazione impertinente voleva nel progetto).

Perché openId è così # @! # @ complesso e non documentato? (nota, ho dato a zend_openid un paio d'ore per avere lo stesso risultato)

È stato utile?

Soluzione

funziona qui. alcuni suggerimenti:

  • a quanto ho capito, http(s)://www.google.com/accounts/o8/id non è un endpoint openid, ma google endpoint scoperta . devi fornire un identificatore OpenID (google) valido, come example.blogspot.com, per il quale restituisce identificatore, URL del server, tipi di servizio, ecc.
  • ho trovato l'esempio di scoperta funzionante solo dopo aver corretto <? e <?= in discover.php (sostituendoli con <?php e <?php echo). in alternativa, puoi ini_set('short_open_tag', '1'). è disattivato per impostazione predefinita in php.ini-recommended.
  • la tua installazione di PHP supporta SSL? vedi README , in particolare questa parte:
Not all PHP installations support SSL.  You can find out if yours
supports SSL by reading the "HTTP Fetching" section of the output of
"examples/detect.php."  If your installation does not support SSL,
then https:// identity URLs and server URLs will not be supported by
the library.  An attempt to use such an identity URL will be
equivalent to using an invalid OpenID.  To enable SSL support,
recompile PHP with OpenSSL support or install the appropriate OpenSSL
module for your platform.  If you are using CURL, CURL will need to be
built with OpenSSL support.

Altri suggerimenti

Questa è una carne di manzo legittima. Google afferma di supportare OpenID, ma il loro non funziona come TUTTI. MyOpenID.com, blogspot, aol, yahoo, wordpress, myspace, livejournal e molti altri supportano tutti lo standard correttamente e funziona come previsto. Come il tuo provider OpenID puoi costruire usando il progetto del server CommunityID.

/ sospirare

Devi fare una richiesta di identità diretta. Normalmente ciò implica solo il passaggio dell'URL come se l'utente lo avesse inserito ... per me ha sempre funzionato in passato (purché la libreria utilizzata supporti OpenID2.0).

Ti suggerisco di guardare questa domanda: PHP-OpenID di Janrain e Google / Yahoo

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