سؤال

أنا أعمل مع معرف مفتوح، فقط يلعب حول صنع فئة للتفاعل / Auth Open ID في موقعي (في PHP). أعلم أن هناك عدد قليل من المكتبات الأخرى (مثل RPX)، لكنني أرغب في استخدام بلدي (من الجيد الحفاظ على المساعدة في فهم البروتوكول بشكل أفضل وما إذا كان ذلك صحيحا بالنسبة لي).

السؤال الذي لدي يتعلق بتسلسل اكتشاف معرف مفتوح. في الأساس لقد وصلت إلى النقطة التي أبحث فيها عن استخدام Doc XRDS للحصول على الهوية المحلية (OpenID.Intity) من الهوية المطالب بها (OpenID.Claimed_ID).

سؤالي هو، هل يجب علي تقديم طلب حليقة للحصول على موقع XRDS (X-XRDS-Location) ثم قم بإجراء طلب حليقة آخر للحصول على XRDS الفعلي Doc؟

يبدو وكأنه مع طلب غبي، فأنا فقط طلب حليقة واحدة والحصول على خادم الهوية المفتوح، ولكن يجب أن تجعل اثنين لاستخدام الطريقة الذكية XRDS. فقط لا يبدو صحيحا، هل يمكن لأي شخص آخر أعطني بعض المعلومات.

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

المحلول

لتكون كاملة، نعم، يجب أن تحصل RP الخاص بك على عنوان URL الذي يمنحك المستخدم، ثم ابحث عن مرجع مستند XRDS وإذا وجد القيام به HTTP آخر من هناك. ضع في اعتبارك أن XRDs قد يتم استضافتها على خادم مختلف، لذلك لا ترمز أي شيء من شأنه أن يتطلب الاتصال هو نفسه بين الطلبين لأنه قد لا يكون نفس الاتصال.

إذا طلب في طلب HTTP الأولي الخاص بك، فأضمن رأس HTTP:

Accept: application/xrds+xml

ثم قد تستجيب الصفحة فورا مع وثيقة XRDS بدلا من مستند HTML لديك لتحليل ارتباط XRDS. ستكون قادرا على اكتشاف ذلك قد حدث عن طريق التحقق من رأس استجابة HTTP للتطبيق / XRDS + XML في رأس نوع المحتوى الخاص به. هذا هو التحسين حتى لا يتعين على RPS عادة أن تجعل دعوة HTTP ثاني ثانية - لكن لا يمكنك الاعتماد عليها.

نصائح أخرى

أفضل نصيحة يمكنني أن أقدمها لك، هي محاولة إخراج HTTP الخاص بك يطلب قليلا، ثم انتقل فقط من خلال عملية القيام بطلب HTTP مرتين.

يمكنك الاحتفاظ بحالات حليقة الخاص بك حولها إذا كنت ترغب في تسريع الأمور باستخدام اتصالات مستمرة، ولكن قد لا تكون أو لا تكون تريد أنك تريد.

آمل أن يساعد هذا، وحظا سعيدا .. OpenID هو أحد أكثر معايير الويب الضخمة والوحدة التي صادفتها منذ WebDAV =)

ايفت

أعلم أنني متأخرا عن اللعبة هنا، لكنني أعتقد أنك يجب أن تحقق أيضا بروتوكول WebFinger.. وبعد يستغرق نمط "البريد الإلكتروني" القياسي "كأداة مساعدة" ويتيح لك إجراء بحث من هناك لاستكشاف OpenID وما إلى ذلك.

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