php-openID не работает с Yahoo - PullRequest
       31

php-openID не работает с Yahoo

8 голосов
/ 11 апреля 2010

Я пытаюсь использовать библиотеку php-openid для реализации openID на моем сайте. основной потребительский пример внутри пакета не работает для Google и Yahoo. я нашел решение Google здесь: Пример использования AX в PHP OpenID но это все еще не работает для Yahoo! , как я могу сделать это работает?

1 Ответ

9 голосов
/ 12 апреля 2010

вау решаемо сейчас !!!!!

Я проследил функции и нашел проблему. И это .... в файле "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');" 

и теперь он работает нормально и возвращает все, что я просил у обоих провайдеров !!!

лол ...

...