я пытаюсь пользоваться php-openid библиотекой для реализации, открытой в моем сайте. основной потребительский пример в его пакете не работает на Google и Yahoo. я нашел решение для Google здесь: использование В качестве примера AX в PHP OpenID, но это все еще не работает на Yahoo!. как может, я сделал это работами?
вау, теперь оно решено !!!!!
Я проследил функции и обнаружил проблему. И это .... в файле "try_auth.php" я использовал
"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',2,1, 'email');"
для получения электронной почты пользователя от провайдера. он отлично работает в Google, потому что Google игнорирует «2» (количество запрошенных адресов электронной почты), но в Yahoo! он генерирует для него [count.email] => 2 (в функции getSignedNS), а в ответе Yahoo нет записи для count.email. это приводит к возврату null в getSignedNS для Yahoo. Я изменил
"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',2,1, 'email');"
на
"$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',1,1, 'email');"
, и теперь он работает нормально и возвращает все, что я запросил у обоих провайдеров !!!
lol ...