2009-10-05 18 views
8

विफल रहता है मैं एक Django ऐप विकसित कर रहा हूं जो पायथन-ओपनिड का उपयोग करता है। ऐप घर पर मेरे विकास सर्वर पर चल रहा है।Google ओपनआईडी/संघीय लॉगिन समय-समय पर

स्टैक ओवरफ्लो के लॉगिन तंत्र के समान, मैं चाहता हूं कि उपयोगकर्ता अपने Google प्रमाण-पत्रों का उपयोग करके मेरी वेबसाइट पर लॉगिन करें।

कोड जो मैंने इसे करने के लिए लागू किया है, कुछ हफ्तों के लिए अच्छा काम करता है, और फिर काम करना बंद कर देता है। मैं निम्नलिखित Google पेज पर लॉगिन प्रक्रिया के दौरान अटक गया: https://www.google.com/accounts/o8/ud इस संदेश के साथ: "आपके द्वारा अनुरोधित पृष्ठ अमान्य है।" यह यादृच्छिक रूप से फिर से काम करना शुरू कर देगा, लेकिन हर कुछ हफ्तों में विफल रहता है।

याहू लॉगिन के माध्यम से जा रहे हैं महीने के लिए काम किया, और आज निम्न संदेश के साथ काम करना बंद कर दिया है: "यह पृष्ठ समाप्त हो गया है, मूल पृष्ठ पर वापस जाने और पुन: प्रयास करें" इस पृष्ठ पर: https://open.login.yahooapis.com/openid/op/auth

यहाँ है अनुरोध, के रूप में गूगल के लिए LiveHttpHeaders द्वारा कब्जा कर लिया:

https://www.google.com/accounts/o8/ud 

POST /accounts/o8/ud HTTP/1.1 
Host: www.google.com 
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042513 Ubuntu/8.04 (hardy) Firefox/3.0.10 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 
Referer: http://127.0.0.1:8000/users/login/ 
Content-Length:907 
openid.ax.if_available=ext1&openid.mode=checkid_setup&openid.ns=http://specs.openid.net/auth/2.0&openid.realm=http://127.0.0.1:8000/accounts/login/&openid.return_to=http://127.0.0.1:8000/users/login/finish/?janrain_nonce=2009-10-05T19%3A10%3A11ZtioiRm&openid.ax.count.ext1=unlimited&openid.ax.mode=fetch_request&openid.sreg.optional=email&openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select&openid.ns.sreg=http://openid.net/extensions/sreg/1.1&openid.ns.ax=http://openid.net/srv/ax/1.0&openid.identity=http://specs.openid.net/auth/2.0/identifier_select&openid.assoc_handle=AOQobUcnzec0bpeZRztjqPrr5TQUA0aPL7SIuOPOMgWxex2HRAP09AyJ&openid.ax.required=ext0&openid.ax.type.ext0=http://schema.openid.net/namePerson&openid.ax.type.ext1=http://schema.openid.net/contact/web/default 

HTTP/1.x 400 Bad Request 
Cache-Control: no-cache, no-store, max-age=0, must-revalidate 

मुझे यकीन है कि यहाँ क्या हो रहा है, और कुछ मदद प्यार होता नहीं हूँ।

+0

क्या यह एक बार विफल रहता है? एक दिन या उससे अधिक के लिए ओवर और ओवर? ऐसी परिस्थितियां क्या हैं जिनके साथ यह फिर से काम करना शुरू कर देता है? –

+0

मुझे आपकी तरह की समस्या है। लेकिन कुछ कितना बदतर है! मुझे उपयोगकर्ता को लॉग इन करने में कोई समस्या नहीं है, लेकिन हर दूसरे दिन, Google द्वारा प्रदान की गई पहचान स्ट्रिंग और अद्वितीय परिवर्तन होना चाहिए! इसलिए उपयोगकर्ता अब मेरी साइट में अपने खातों के साथ लॉगिन नहीं कर सकते हैं। मुझे नहीं पता कि क्या होता है। –

उत्तर

0

ऐसा लगता है कि आप जिस कोड का उपयोग कर रहे हैं वह एक खराब यूआरएल अनुरोध उत्पन्न कर रहा है। वास्तविक यूआरएल https://www.google.com/accounts/o8/id है, इसलिए "आईडी" द्वारा इसे अंत में "ud" को ठीक करने का प्रयास करें।

आशा है कि इससे मदद मिलती है!

0

आप यूरी का निर्माण कर सकते हैं और उपयोगकर्ता को GET विधि के साथ यूरी पर रीडायरेक्ट कर सकते हैं। यदि आप POST कर रहे हैं तो Google कुछ शीर्षकों की अपेक्षा करता है जो मुझे लगता है कि यह दस्तावेज़ों का उल्लेख नहीं किया गया था। sample अनुरोध देखें। मैंने बिना पाइथन-ओपनिड के जीईटी के साथ प्रयास किया, यह बहुत अच्छी तरह से काम करता है।

संबंधित मुद्दे