Вопрос

Я использую Php-библиотеку JanRain для обнаружения OpenID и yadis, и независимо от того, что я делаю, я буду работать с такими вещами, как user.openid.org или мой собственный провайдер, но если я попытаюсь использовать конечную точку Google, я не смогу получить никакой информации об обнаружении.

Даже если я запущу пример обнаружения для библиотеки janrain, я получу следующий заявленный результат

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

и это произойдет то же самое, если я добавлю https: // перед URL-адресом.

Мой вопрос, вероятно, не в том, как заставить это работать, но если это действительно возможно, какие еще варианты у меня есть (которые запускаются на моем сайте, в проекте не требуется sassy auth).

Почему OpenID такой #@!#@ сложный и недокументированный?(обратите внимание, я дал zend_openid пару часов, чтобы получить тот же результат)

Это было полезно?

Решение

здесь это работает.несколько подсказок:

  • насколько я понимаю, это, http(s)://www.google.com/accounts/o8/id это не конечная точка OpenID, а googles открытие конечная точка.вы должны предоставить ему действительный идентификатор OpenID (Google), например example.blogspot.com, для которого он возвращает Заявленный идентификатор, URL сервера, типы сервисов и т.д.
  • я получил пример обнаружения, работающий только после исправления <? и <?= в discover.php (заменяя их на <?php и <?php echo).в качестве альтернативы, вы можете ini_set('short_open_tag', '1').по умолчанию он выключен в php.ini-recommended.
  • поддерживает ли ваша установка PHP SSL?видишь ПРОЧИТАЙ МЕНЯ, в частности , эта часть:
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.

Другие советы

Это настоящая говядина.Google говорит, что они поддерживают OpenID, но их программа работает не так, как у всех остальных.MyOpenID.com , blogspot blogspot, aol, yahoo, WordPress, myspace, livejournal и многие другие - все они корректно поддерживают стандарт, и он работает должным образом.Как и ваш собственный провайдер OpenID, вы можете создать его с помощью проекта CommunityID server.

/вздох

Вам необходимо направить запрос на идентификацию. Обычно это просто передача URL-адреса, как если бы он был введен пользователем ... это всегда работало для меня в прошлом (если используемая библиотека поддерживает OpenID2.0).

Предлагаю вам посмотреть этот вопрос: PHP-OpenID Джанрейна и Google / Yahoo

scroll top