मुझे google_oauth2
में कुछ भी दिखाई नहीं देता है जो ताज़ा टोकन के साथ एक नया access_token
लाता है, इसलिए ऐसा लगता है कि आपको सीधे एक्सचेंज बनाना होगा।
Google's official OAuth 2.0 documentation बताता है कि इसे निम्न स्तर पर कैसे किया जाए। अपने सर्वर-साइड कोड के भीतर, एक अनुरोध है कि इस तरह दिखता है निर्माण करने के लिए अपने पसंदीदा HTTP ग्राहक का उपयोग करें:
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded
client_id=CLIENT_ID&
client_secret=CLIENT_SECRET&
refresh_token=REFRESH_TOKEN&
grant_type=refresh_token
जहां CLIENT_ID
और CLIENT_SECRET
ही हैं जिन्हें आप मूल प्रमाणीकरण और REFRESH_TOKEN
के लिए इस्तेमाल कर रहे हैं से ताज़ा टोकन है मूल प्रमाणीकरण प्रवाह। विनिमय सफल होता है, यदि आप एक प्रतिक्रिया है कि कुछ इस तरह दिखता में एक ताजा पहुँच टोकन प्राप्त करेंगे:
{
"access_token":"1/fFBGRNJru1FQd44AzqT3Zg",
"expires_in":3920,
"token_type":"Bearer",
}
आप इस प्रक्रिया का पालन कर सकते एक नया पहुँच टोकन हड़पने के लिए जब भी आप एक की जरूरत है। आप या तो expires_in
मान का अनुमान लगाने के लिए उपयोग कर सकते हैं जब आपको किसी नए की आवश्यकता होगी, या जब भी आपका एपीआई अनुरोध 401 HTTP स्थिति के साथ प्रतिक्रिया देता है तो रीफ्रेश करने का प्रयास करें।
आप इसे अपने रेल ऐप में कहां लागू करेंगे? उदाहरण के लिए मुझे टोकरी भेजता है जो httparty का उपयोग कर उपयोगकर्ता संपर्कों को पुनर्प्राप्त करने का अनुरोध प्राप्त होता है, टोकन की समयसीमा समाप्त होने पर मैं रीफ्रेश टोकन पोस्ट कैसे करूं? – Richlewis
मैंने जो कोड ऊपर पोस्ट किया है वह वह कोड है जो टोकन को रीफ्रेश करने के लिए POST अनुरोध करता है। अपना जीईटी अनुरोध करने के बाद, मैं यह देखने के लिए जांच करूंगा कि प्रतिक्रिया कोड 401 के बराबर है या नहीं, आमतौर पर वह कोड होता है जब आपको अपना टोकन रीफ्रेश करने की आवश्यकता होती है। यदि HTTParty प्रतिक्रिया कोड == 401 फिर मेरा कोड चलाएं (आपकी आवश्यकताओं के लिए समायोजित)। – Blake
उत्कृष्ट, मेरा काम मिल गया, धन्यवाद – Richlewis