PHP-OpenID не работает с Yahoo
-
26-09-2019 - |
Вопрос
Я пытаюсь использовать библиотеку PHP-OpenID для реализации 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 для него (в функции get getignedns), а в ответе 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');"
И сейчас работает нормально и вернуть все, что я просил от обоих провайдеров !!!
ржу не могу...