Janrain php library ed endpoint google per OpenId
-
22-07-2019 - |
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)
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, comeexample.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<?=
indiscover.php
(sostituendoli con<?php
e<?php echo
). in alternativa, puoiini_set('short_open_tag', '1')
. è disattivato per impostazione predefinita inphp.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