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');"
и теперь он работает нормально и возвращает все, что я просил у обоих провайдеров!!!
лол...