Question

J'utilise janRain Php library pour la découverte OpenId et yadis et peu importe ce que je fais, je vais travailler dans des choses comme user.openid.org ou mon propre fournisseur, mais si j'essaie d'utiliser le point de terminaison Google, je ne peux en obtenir informations de découverte.

Même si j'exécute l'exemple de découverte pour la bibliothèque janrain, j'obtiens le résultat suivant Claimed

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

et il en va de même si j'ajoute le https: // avant l'URL.

Ma question n'est probablement pas comment le faire fonctionner, mais si c'est réellement possible, quels autres choix dois-je avoir (qui fonctionne sur mon site, aucune autorisation impertinente ne voulait dans le projet).

Pourquoi openId est-il si # @! # @ complexe et non documenté (remarque, j'ai donné quelques heures à zend_openid pour obtenir le même résultat)

Était-ce utile?

La solution

ça marche ici. quelques astuces:

  • si je comprends bien, http(s)://www.google.com/accounts/o8/id n’est pas un point de terminaison openid, mais un point de terminaison google Discovery . vous devez lui fournir un identifiant OpenID valide (google), tel que example.blogspot.com, pour lequel il renvoie l'identifiant revendiqué, l'URL du serveur, les types de service, etc.
  • L'exemple de découverte ne fonctionne qu'après avoir corrigé les <? et <?= in discover.php (en les remplaçant par <?php et <?php echo). sinon, vous pouvez ini_set('short_open_tag', '1'). il est désactivé par défaut dans php.ini-recommended.
  • votre installation PHP supporte-t-elle SSL? voir README , plus précisément cette partie:
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.

Autres conseils

Ceci est un boeuf légitime. Google dit qu'ils supportent OpenID, mais que le leur ne fonctionne pas comme n'importe qui d'autre. MyOpenID.com, blogspot, aol, yahoo, wordpress, myspace, livejournal et bien d’autres supportent correctement le standard et fonctionnent comme prévu. Comme votre propre fournisseur OpenID, vous pouvez le créer à l’aide du projet de serveur CommunityID.

/ soupir

Vous devez faire une demande d’identité dirigée. Normalement, cela implique simplement de transmettre l’URL comme si l’utilisateur l’avait entrée ... cela a toujours fonctionné pour moi dans le passé (tant que la bibliothèque que vous utilisez supporte OpenID2.0).

Je vous suggère de regarder cette question: PHP-OpenID et Google / Yahoo de Janrain

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top