سؤال

أنا أقرأ عنه تسجيل الدخول الموحد لمستخدمي حساب Google لمعرفة كيف يمكنني أن أطلب من المستخدم تسجيل الدخول إلى تطبيق ويب باستخدام حساب Google الخاص به.

لذلك، في نهاية العملية، تقوم Google بإرجاع المعرف المقدم من Google والذي يتم إلحاقه كـ openid.claimed_id.وهذا يعني أن تطبيق الويب يستخدم هذا المعرف للتعرف على المستخدم والسماح بالوصول إلى ميزات التطبيق وبياناته.سؤالي هو هل هذا المعرف ثابت؟هل يمكنني استخدام هذا المعرف لتحديد هوية المستخدم نفسه بشكل متكرر؟

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

المحلول

نعم. النظر في قيمة openid.claimed_id أن يكون اسم المستخدم. خصوصا مع جوجل، ولكن هذا ينطبق على أي مزود رض أن حقا الأدوات "الهوية موجهة، لا يعتبرون هذا المستخدم أن يكون correlatible مع مواقع أخرى. فإن أي الطرف المعول أخرى إلى جانب موقع الويب الخاص بك الحصول على قيمة claimed_id مختلفة لنفس المستخدم في Google حسب التصميم.

وبالإضافة إلى ذلك، يجب التأكد من معالجة هذه claimed_id ك <م> <وأ href = "http://blog.nerdbank.net/2008/07/case-for-case-sensitive-openid-url.html" يختلط = "noreferrer"> قضية حساسة .

نصائح أخرى

في الواقع، لقد واجهت للتو حالة تم فيها تغيير معرف Google المزعوم لمستخدم الاختبار الخاص بي.لقد كنت على وشك الانتهاء من تنفيذ OpenID في تطبيقي، وبدون سبب واضح تم تغيير المعرّف_المطالب به في بيانات الاستجابة.

لقد قمت باختبار هذا الحساب خلال الأسبوعين الماضيين، وكان معرف_المطالبة هو نفسه طوال الوقت، كما هو متوقع.ثم إضرب، تغير!لقد نظرت إلى بيانات الاستجابة عدة مرات للتحقق، ولم يتغير الكود الأساسي لاسترداد البيانات.

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

يحرر

الآن لدي فطيرة في وجهي!لقد فاتني تفصيل صغير، والذي تحول إلى تفصيل كبير.لقد قمت بتغيير بيئة التطوير الخاصة بي وكنت أستضيف على مضيف v مختلف.سيؤدي هذا إلى تغيير المجال بشكل فعال، وسيؤدي ذلك إلى تغيير الاستجابة المزعومة وفقًا للمستندات.

كان هذا درسًا جيدًا بالنسبة لي، حيث كنت على وشك تنفيذ معرف الكائن (OID) على نطاق فرعي حيث تم تعيين المجال تلقائيًا في الكود الخاص بي.الآن أنقذت نفسي من الصداع، لأنني لم أكن لأتمكن من استخدام نفس قاعدة بيانات المستخدم عبر جميع النطاقات الفرعية الأخرى دون كسر الهوية.

تحديث المجال

مزيد من المعلومات

كملاحظة جانبية فقط - حتى إذا كنت تقوم بتطوير حل OpenID الخاص بك لأحد نطاقاتك الفرعية، فقد يكون من الحكمة بالنسبة لك تحديد المجال لنطاق المستوى الأعلى الخاص بك.

على سبيل المثال، openid.realm = http://*.yourdomain.com

سيسمح لك بتوسيع صفحة تسجيل الدخول الخاصة بك عبر جميع نطاقاتك الفرعية والحفاظ على هوية المستخدم عبرها.

(اختياري) المجال المصادق عليه.يحدد المجال الذي يُطلب من المستخدم النهائي الثقة.(مثال:"http: //*.myexamplesite.com") يجب أن تكون هذه القيمة متسقة مع المجال المحدد في OpenID.RETURN_TO.إذا لم يتم تعريف هذه المعلمة ، فستستخدم Google عنوان URL المشار إليه في OpenID.RETURN_TO.

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