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

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

1 ответ

Решение

вау это решено сейчас!!!!!

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

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

лол...

Другие вопросы по тегам