5

Mam rozszerzenie, które najpierw prosi o uprawnienia dostępu do plików z Dysku Google. Rozszerzenie jest prawie pusty, z wyjątkiem popup załadować ten JS:Usuwanie uprawnień rozszerzeń

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') 
}); 

w moim manifest mam ważny klucz, OAuth2 ID klienta i "scopes":["https://www.googleapis.com/auth/drive"] oprócz innych standardowych klawiszy dla Chrome rozszerzenia.

Działa poprawnie, gdy najpierw prosi o pozwolenie, a następnie rejestruje mój token dostępu. Jednak po ponownym zainstalowaniu rozszerzenia (usunięte/zmodyfikowane/dodane) nie poprosił mnie o pozwolenie i po prostu napisał ten sam token dostępu. I chcę ponownie zapytać o pozwolenie. Jak mogę to zrobić?

Odpowiedz

6

W celu usunięcia uprawnień muszę dodać kolejne żądania GET do cofnięcia pozwolenia:

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() {}) 
}); 

To załatwia sprawę i teraz za każdym razem otworzyć okienko mam monit o zgodę.

Jest jednak inny problem: kiedy wydać zgodę uzyskać

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. 

których nie jestem pewien, co to znaczy.

0

Po uzyskaniu pozwolenia, oczywiście nie pojawi się ponownie monit. Musisz wejść na stronę konta Google i cofnąć uprawnienia.

+0

tak, jest to najlepsza metoda, ponieważ jest podobna do innych przepływów oauth. ale odpowiedź nie zawiera lepszych szczegółów i łączy. –

6

Podczas opracowywania można przejść do chrome://identity-internals, aby odwołać określone tokeny. Przy kolejnej autoryzacji tego użytkownika okno uprawnień pojawi się ponownie. Udokumentowane na User Authentication: Caching.