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

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

8
задан Community 23 May 2017 в 12:19
поделиться

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');" 

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

lol ...

9
ответ дан 5 December 2019 в 18:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: