Вопрос

Я пытаюсь использовать библиотеку 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');" 

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

ржу не могу...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top