سؤال

أحاول استخدام مكتبة PHP-OpenId لتنفيذ OpenID في موقعي. لا يعمل مثال المستهلك الأساسي داخل حزمةه مع Google و Yahoo. لقد وجدت حل Google هنا:مثال استخدام الفأس في php openidلكنه لا يزال يعمل لصالح ياهو! . كيف يمكنني جعلها تعمل؟

هل كانت مفيدة؟

المحلول

واو تم حله الآن !!!!!

لقد تتبعت الوظائف ووجدت المشكلة. وهذا هو .... في ملف "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. يسبب عودة لاغية في 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