Библиотека Janrain php и конечная точка Google для OpenID
-
22-07-2019 - |
Вопрос
Я использую 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 а> р>