5

मेरे पास एक एक्सटेंशन है जो पहले Google ड्राइव फ़ाइलों तक पहुंचने के लिए अनुमति मांगता है। विस्तार मैं लोड इस जे एस पॉपअप को छोड़कर लगभग खाली:एक्सटेंशन की अनुमतियां हटाकर

chrome.identity.getAuthToken({ 'interactive': true }, function(token) { 
    // Use the token. 
    console.log('Request Token') 
    console.log(token) 
    chrome.identity.removeCachedAuthToken(
       { 'token': token }, function() {}) 
    console.log('Removed token') 
}); 

मेरी प्रकट में मैं, वैध कुंजी है ग्राहक आईडी OAuth2, और "scopes":["https://www.googleapis.com/auth/drive"] क्रोम विस्तार के लिए अन्य मानक कुंजी के अलावा।

यह ठीक से काम करता है कि इसे पहले अनुमति के लिए कहा जाता है और फिर मेरा एक्सेस टोकन लॉग किया जाता है। हालांकि, जब मैंने एक्सटेंशन को पुनर्स्थापित किया (हटाया/संशोधित/जोड़ा) तो उसने मुझे अनुमति के लिए नहीं पूछा और केवल उसी एक्सेस टोकन को लिखा। और मैं फिर से अनुमति पूछना चाहता हूं। मैं यह कैसे कर सकता हूँ?

उत्तर

6

अनुमतियों को निकालने के लिए मैं अनुमति को निरस्त करने के लिए एक और GET अनुरोध जोड़ने के लिए:

chrome.identity.getAuthToken({ 'interactive': true }, function(token) { 
    // Use the token. 
    if (token) { 
     // Make a request to revoke token 
     var xhr = new XMLHttpRequest(); 
     xhr.open('GET', 'https://accounts.google.com/o/oauth2/revoke?token=' + 
      token); 
     xhr.send(); 
    } 
    chrome.identity.removeCachedAuthToken(
       { 'token': token }, function() {}) 
}); 

कि चाल और अब हर बार जब मैं पॉपअप खोलने मैं अनुमति के लिए एक संकेत है।

वहाँ एक और समस्या यह है: जब मैं अनुमति देना मैं

XMLHttpRequest cannot load https://accounts.google.com/o/oauth2/revoke?token=... 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'chrome-extension://acfnd...' is therefore not allowed access. 

जो मुझे यकीन है कि क्या मतलब है नहीं कर रहा हूँ मिलता है।

0

एक बार जब आप अनुमति देते हैं, तो निश्चित रूप से आपको फिर से संकेत नहीं दिया जाएगा। आपको अपने Google खाता पृष्ठ पर जाना होगा और अनुमति रद्द करनी होगी।

+0

हां, यह सबसे अच्छी विधि है क्योंकि इसकी पसंद अन्य ओथ बहती है। लेकिन जवाब में बेहतर विस्तार और लिंक की कमी है। –

6

विकास के दौरान आप विशिष्ट टोकन को रद्द करने के लिए chrome://identity-internals पर जा सकते हैं। अगली बार जब आप उस उपयोगकर्ता को अधिकृत करते हैं तो अनुमति संवाद फिर से प्रदर्शित किया जाएगा। User Authentication: Caching पर प्रलेखित।

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