سؤال

أنا أستخدم مكتبة janRain Php لاكتشاف OpenId وyadis وبغض النظر عما أفعله، سأعمل في أشياء مثل user.openid.org أو المزود الخاص بي، ولكن إذا حاولت استخدام نقطة نهاية google، فلن أتمكن من الحصول على أي معلومات اكتشاف.

حتى لو قمت بتشغيل مثال الاكتشاف لمكتبة جانرين، سأحصل على النتيجة التالية التي تمت المطالبة بها

Identifier  http://www.google.com/accounts/o8/id
No OpenID services discovered.

ويحدث نفس الشيء إذا أضفت https:// قبل عنوان url.

ربما لا يكون سؤالي هو كيفية إنجاحه، ولكن إذا كان ذلك ممكنًا بالفعل، فما هي الخيارات الأخرى المتاحة لي (التي يتم تشغيلها في موقعي، ولا أريد مصادقة وقحة في المشروع).

لماذا يعتبر openId #@!#@ معقدًا وغير موثق؟ (لاحظ أنني أعطيت zend_openid بضع ساعات للحصول على نفس النتيجة)

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

المحلول

انها تعمل هنا.بعض التلميحات:

  • كما أفهمها، http(s)://www.google.com/accounts/o8/id ليست نقطة نهاية openid، ولكن googles اكتشاف نقطة النهاية.عليك أن تزوده بمعرف OpenID صالح (google)، مثل example.blogspot.com, ، والتي تُرجع لها المعرف المُطالب به، وعنوان URL للخادم، وأنواع الخدمة، وما إلى ذلك.
  • حصلت على مثال الاكتشاف الذي يعمل فقط بعد إصلاح <? و <?= في discover.php (استبدالهم ب <?php و <?php echo).بدلا من ذلك، يمكنك ini_set('short_open_tag', '1').تم إيقافه بشكل افتراضي في php.ini-recommended.
  • هل يدعم تثبيت PHP الخاص بك SSL؟يرى التمهيدي, ، وتحديداً هذا الجزء:
Not all PHP installations support SSL.  You can find out if yours
supports SSL by reading the "HTTP Fetching" section of the output of
"examples/detect.php."  If your installation does not support SSL,
then https:// identity URLs and server URLs will not be supported by
the library.  An attempt to use such an identity URL will be
equivalent to using an invalid OpenID.  To enable SSL support,
recompile PHP with OpenSSL support or install the appropriate OpenSSL
module for your platform.  If you are using CURL, CURL will need to be
built with OpenSSL support.

نصائح أخرى

وهذا هو لحوم البقر المشروعة. وتقول جوجل أنها تدعم رض، ولكن لهم لا يعمل مثل أي شخص إلسس. MyOpenID.com، بلوغسبوت، أمريكا أون لاين، ياهو، وورد، ماي سبيس، لايف جورنال وغيرها الكثير كل دعم معيار صحيح وأنه يعمل كما هو متوقع. وكذلك مزود رض الخاصة بك يمكنك بناء باستخدام مشروع خادم CommunityID.

و/ تنفس الصعداء

ما عليك القيام به طلب هوية توجيهات. عادة ينطوي على مجرد تمرير URL كما لو أن المستخدم قد دخلت عليه ... وهذا ما دائما عملت بالنسبة لي في الماضي (طالما المكتبة استخدام الدعم OpenID2.0).

أقترح عليك أن تنظر إلى هذا السؤال: PHP-OpenID الخاص بـ Janrain وGoogle/Yahoo

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top