इस प्रश्न को स्टैक पर कुछ बार पूछा गया है, लेकिन कोई वास्तविक जवाब नहीं है। मुझे वैसे भी मेरी स्थिति को समझाने की कोशिश करें।फेसबुक ओएथ लॉगिन - access_token एपीआई लौटने "यह प्राधिकरण कोड का उपयोग किया गया है"
हम ऐसे एप्लिकेशन का उपयोग करते हैं जो फेसबुक OAuth2 लॉगिन का उपयोग करता है। यह लॉगिन पिछले हफ्ते तक ठीक काम करने के लिए प्रयुक्त होता था, और अचानक यह हमें अब परेशान कर रहा है।
आवेदन प्रवाह:
चरण 1: उपयोगकर्ता प्रेस हमारी वेबसाइट पर फेसबुक बटन के साथ लॉगिन
चरण 2: फेसबुक लॉगिन/प्राधिकरण पेज
चरण 3 पर रीडायरेक्ट किया : ऐप को अधिकृत करने पर, कॉलबैक हमारे आवेदन पर आता है, एक संक्षिप्त "कोड" परम के साथ।
चरण 4: यह "कोड" परम एक 60 दिन पहुँच टोकन का उपयोग कर "https://graph.facebook.com/oauth/access_token" यूआरएल के लिए आदान-प्रदान किया किया जाएगा।
चरण 4 मेंत्रुटि:
जब हम पहुँच टोकन के लिए कम रहने "कोड" का आदान-प्रदान करने का प्रयास करें, हम फेसबुक से इस त्रुटि मिलती है।
{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}
अवलोकन:
- उपयोगकर्ताओं को, जो नव आवेदन करने के लिए आ रहे हैं के लिए, ऊपर-कहा त्रुटि नहीं होती है।
- एक लौटने वाले उपयोगकर्ता के लिए यह कॉल उपरोक्त त्रुटि के साथ विफल रहता है।
- हमारा आवेदन अब 9 महीने से अधिक समय तक लाइव है, और यह त्रुटि केवल पिछले 7-10 दिनों में आई है। हमारे पास हजारों उपयोगकर्ता इसका सफलतापूर्वक इसका उपयोग कर रहे हैं।
क्या मैं पहले से ही मंच से मिला:
यहाँ मैं क्या पढ़ा मेरी व्याख्या है। गलत हो सकता है। फेसबुक में कुछ अजीब नीति है जो ऐप डेवलपर को अस्थायी 10 मिनट कोड बनाए रखने के लिए जरूरी है जब तक कि पहले लॉगिन की अवधि के दौरान प्राप्त 60 दिन कोड न हो। तो हमें उपयोगकर्ता के ब्राउज़र पर एक्सेस टोकन के साथ एक कुकी बनाना चाहिए। मैं कुकीज बनाने के लिए लोगों को अपने कोड को संशोधित करने में भी सक्षम था।
वास्तव में मुझे क्या परेशान कर रहा है?
- सुझाए गए समाधान मानते हैं कि वे जो कुकी बनाते हैं वह हमेशा उपयोगकर्ता के ब्राउज़र में मौजूद होगी। यह एक बुरा धारणा है, क्योंकि किसी भी समय कुकी मिटा दी जा सकती है।
- मेरे पास एक और ऐप आईडी/ऐप रहस्य है जिसका उपयोग मैं अपने विकास (i.e localhost) के लिए करता हूं, और यह पूरी तरह से काम करता है। लॉगिन वहां ठीक होता है, लेकिन इसकी केवल उत्पाद मशीन है जिसमें समस्या है।
- इस समस्या को ऐप लॉन्च करने के लगभग 10 महीनों तक उत्पादन मशीन पर नहीं हुआ, और यह अचानक आ गया है। सबसे बुरी बात यह है कि, मैं इस प्रवाह को तोड़ने वाले हालिया परिवर्तनों का कोई रिकॉर्ड प्राप्त करने में असमर्थ हूं।
संपादित करें:
प्लेटफार्म: अजगर, गूगल AppEngine। हम किसी भी फेसबुक एसडीके का उपयोग नहीं करते हैं, हम सभी लॉगिन यूआरएल पर सीधे HTTP कॉल करते हैं। कॉल विफल रहता है: https://graph.facebook.com/oauth/access_token - हम पहली कॉल होने के 20 सेकंड के भीतर ऐप आईडी, गुप्त और कोड (फेसबुक से प्राप्त) पास कर रहे हैं।
आशा है कि यह दिखाने के लिए यहां पर्याप्त जानकारी है कि हमारा कोड पूरी तरह से गलत नहीं है। इस समस्या का सामना करने और हल करने वाले लोगों की कोई भी सुझाव/पॉइंटर्स आपका स्वागत है। यदि यह एक फेसबुक बग है, और फेसबुक देव नोटिस के लिए आता है, तो मैं भी खुश होगा।
कोड पैरामीटर केवल एक बार उपयोगकर्ता पहुंच टोकन के लिए आदान-प्रदान किया जा सकता है। आपके प्रश्न का उपयोग करने वाले प्लेटफ़ॉर्म/भाषा के बारे में कोई भी उपयोगी जानकारी अनुपलब्ध है, और आपकी सटीक API कॉल क्या हैं। – CBroe
@CBroe - अधिसूचना के लिए धन्यवाद। हां - हम समझते हैं कि कोड पैराम एक बार बात है, और यही कारण है कि हम इसे access_token के लिए एक्सचेंज करना चाहते हैं, लेकिन एक्सेस टोकन यूआरएल असफल हो रहा है। मैंने मंच/भाषा के बारे में जानकारी शामिल की है। – Srivatsan