देता है मैं प्रमाणीकरण प्राप्त करने के लिए निम्न का उपयोग करता हूं कि मैं एंड्रॉइड ऐप से बैकएंड तक पहुंच सकता हूं। यह यहां https://developers.google.com/identity/protocols/CrossClientAuth वर्णित है।GoogleAuthUtil.getToken अमान्य प्रमाणीकरण कोड
StringBuffer sb = new StringBuffer();
sb.append("oauth2:server:client_id:");
sb.append(getString(R.string.google_app_id));
sb.append(":api_scope:");
sb.append("profile email");
final String scope = sb.toString();
String token = GoogleAuthUtil.getToken(Activity.this, mAuthAccount, scope);
ऊपर रिटर्न एक अल्पकालिक प्रमाणीकरण कोड है जो कभी कभी समाप्त हो गया है (mAuthAccount पहले AccountPicker.newChooseAccountIntent का उपयोग कर स्थापित किया गया था।)। मैं इसे Google सर्वर के विरुद्ध जांचना चाहता हूं, लेकिन GoogleAuthUtil.getToken से लौटे टोकन स्ट्रिंग के साथ https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= पर कॉल करना "अमान्य टोकन" देता है।
मैं यह कैसे सत्यापित करूं कि प्रमाणीकरण कोड का उपयोग करने से पहले इसे समाप्त नहीं किया गया है?
संपादित करें: लौटाई गई स्ट्रिंग एक टोकन नहीं है, लेकिन एक प्राधिकरण कोड जिसे टोकन प्राप्त करने के लिए Google एपीआई के साथ आदान-प्रदान किया जा सकता है (लौटाई गई स्ट्रिंग "/ 4" से शुरू होती है और नहीं "/ 1" या "/ 2 " अगर मुझे ठीक से याद है)।
कोड हमेशा काम नहीं करता है (मेरे सर्वर पर) और मुझे यह जांचने में सक्षम होना चाहिए कि कोड का उपयोग किया जा सकता है या समाप्त हो गया है या नहीं।
चेकआउट इस उत्तर: http://stackoverflow.com/a/24982688/1484779 – jlopez
मैं { "त्रुटि" मिलती है: GoogleAuthUtil.getToken पर कॉल के बाद https://www.googleapis.com/oauth2/v1/tokeninfo से "invalid_token"} - टोकन * बस * जेनरेट किया गया था और इसके साथ टेम्पर्ड नहीं था। शायद टोकन का प्रकार गलत है? – wojciii
इसके अलावा, मैंने टोकन को अमान्य करने और GoogleAuthUtil.getToken() को फिर से कॉल करने का प्रयास किया। मुझे अभी भी googleapis.com से एक अवैध टोकन जवाब मिला है। यही वह है जो मुझे समझ में नहीं आता है। मैं सोच रहा हूं कि मैं क्या गलत कर रहा हूं। – wojciii