ماذا يعني هذا الخطأ المفتوح: خطأ في محاولة استخدام معلومات الاكتشاف المخزنة

StackOverflow https://stackoverflow.com/questions/2165809

سؤال

أحاول إعداد تطبيق باستخدام Django-OpenId و OpenID. أحصل على الأخطاء التالية ولا يمكنني معرفة سببها.

[Fri Jan 29 13:29:20 2010] [error] Generated checkid_setup request to https://www.google.com/accounts/o8/ud with assocication XXXXXXXXXXXXXX  
[Fri Jan 29 13:29:26 2010] [error] Error attempting to use stored discovery information: <openid.consumer.consumer.TypeURIMismatch: Required type http://specs.openid.net/auth/2.0/signon not found in ['http://specs.openid.net/auth/2.0/server', 'http://openid.net/srv/ax/1.0', 'http://specs.openid.net/extensions/ui/1.0/mode/popup', 'http://specs.openid.net/extensions/ui/1.0/icon', 'http://specs.openid.net/extensions/pape/1.0'] for endpoint <openid.consumer.discover.OpenIDServiceEndpoint server_url='https://www.google.com/accounts/o8/ud' claimed_id=None local_id=None canonicalID=None used_yadis=True >>  
[Fri Jan 29 13:29:26 2010] [error] Attempting discovery to verify endpoint  
[Fri Jan 29 13:29:26 2010] [error] Performing discovery on https://www.google.com/accounts/o8/id?id=PrHw_N5_3j1HM  
[Fri Jan 29 13:29:26 2010] [error] Received id_res response from https://www.google.com/accounts/o8/ud using association XXXXXXXXXXXXX  

يبدو أن Python لا يمكنه استخدام المعلومات التي يتم استردادها من Google. هل هذا الخطأ بسبب البيانات القادمة من Google أم أنها مشكلة في OpenID؟

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

المحلول

همم. هذا في الواقع ليس خطأ فادح. أحصل على نفس الشيء عند استخدام مثال المستهلك Python-OpenId مقابل معرف OP الخاص بـ Google (The/Occounts/O8/ID واحد الذي يولد المعرفات الموجهات المضحكة) ، لكنه يسجل الدخول بنجاح.

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

نصائح أخرى

يحدث هذا عندما يكون عنوان URL المعطى هو عنوان URL للخادم ، بدلاً من المعرف المطالب به. إنه خطأ حقيقي للمسار الذي ينشئه ، لأنه لا يمكن استخدام عنوان URL كمعرف ، ولكن يتم القبض عليه داخليًا ويستخدم لطلب معرف حقيقي من الخادم ، لذلك من الآمن تجاهل رسائل السجل. مع ذلك، تقرير الأخطاء تم تقديمه إلى مشروع Python-OpenId على Github ، مع إصلاح مقترح.

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