J'ai une extension qui demande d'abord aux autorisations d'accéder aux fichiers Google Drive. L'extension est presque vide sauf dans la fenêtre contextuelle que je charge ce js:
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') });
Dans mon manifeste, j'ai une clé valide, id de client oauth2 et "scopes":["https://www.googleapis.com/auth/drive"]
plus d'autres clés standard pour l'extension chrome.
Il fonctionne correctement, il est demandé une permission au début, puis a enregistré mon jeton d'accès. Cependant, lorsque j'ai réinstallé l'extension (supprimé / modifié / ajouté), il ne m'a pas demandé de permission et a simplement écrit le même jeton d'accès. Et je souhaite demander à nouveau la permission. Comment puis-je faire ceci?
Pour supprimer les autorisations, je dois ajouter une autre requête GET pour révoquer l'autorisation:
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 () {}) });
Cela fait l'affaire et maintenant, chaque fois que j'ouvre la fenêtre contextuelle, je souhaite la permission.
Cependant, il y a un autre problème: lorsque j'accorde une permission, je reçois
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.
Ce que je ne suis pas sûr de ce qui signifie.
Au cours du développement, vous pouvez aller à chrome://identity-internals
pour révoquer des jetons spécifiques. La prochaine fois que vous autorisez cet utilisateur, la boîte de dialogue des autorisations s'affiche à nouveau. Documenté sur l'authentification de l'utilisateur: mise en cache .
Une fois que vous avez accordé l'autorisation, bien sûr, vous ne serez pas invité à nouveau. Vous devrez accéder à votre page Google Account et révoquer l'autorisation.