2015-06-30 30 views
13

Sto lavorando con l'API di Chrome Identity, per fornire agli utenti un'autenticazione Google sull'estensione di Chrome.chrome.identity.getAuthToken non funziona

ho seguito il tutorial ufficiale di Google: link Chrome Identity API

  • ho aggiunto i permessi per manifest.json e Client ID e Scopes
  • per far scattare l'Autenticazione ho aggiunto questo codice nel mio Background.js

chrome.identity.getAuthToken

Il problema è quando eseguo l'estensione sto reindirizzato a questa pagina di login

chrome://chrome-signin/?source=5

ma dopo un'autenticazione successo sto reindirizzato un'altra volta alla pagina di login

qual è il problema?

manifest.json

{ 
    "name": "My Extension", 
    "short_name": "Ex App", 
    "version": "0.1", 
    "description": "description", 
    "manifest_version": 2, 
    "icons": { "128": "ICONE.png", "48": "ICONE1.png" }, 
    "permissions": ["contextMenus", "identity", "cookies", "http://*/*", "https://*/*", "<all_urls>", "unlimitedStorage"], 
    "browser_action": { 
    "default_title": "Title", 
    "default_icon": "imgIcone.png" 
    }, 
    "oauth2": { 
     "client_id": "xxxxxxx", 
     "scopes": [ 
      "https://www.googleapis.com/auth/userinfo.email" 
    ] 
}, 

    "background": { 
    "scripts": ["background.js"] 
    }, 

    "content_scripts" : [ 
{ 
    "matches": ["*://*.google.com/*"], 
    "js": ["gadget/js/jquery.js","gadget/js/contactcard.js"], 
    "css": ["gadget/css/contactcard.css"], 
    "all_frames": true 
    }], 

    "content_security_policy": "script-src 'self' 'unsafe-eval' https://apis.google.com/; object-src 'self'", 
    "web_accessible_resources": ["img.png","gadget/css/contactcard.css","gadget/img/extension/crec.png"] 
} 

Background.js:

chrome.identity.getAuthToken({ 'interactive': true }, function(token) { 
     // Use the token. 
     console.log(token); 
      }); 
+0

possibile duplicato di [Errore: origine \ _mismatch per l'estensione Chrome] (http://stackoverflow.com/questions/31134738/error-origin-mismatch-for-chrome-extension) – Madhan

+0

No è necessario modificare il titolo della domanda; tutti possono vedere che c'è una risposta, e puoi contrassegnare le risposte come accettate (anche se potrebbe esserci un ritardo prima di poterlo fare) indicando inoltre che non è necessario rispondere. – Xan

+0

@ Xan grazie per le tue informazioni! – user2602584

risposta

13

problema risolto!

l'ID app della mia Chrome extension non corrisponde con la mia app ID in Google Console Developpers Per evitare questo caricare il tuo primo Extension quindi copiare l'ID da Chrome e impostarlo in Google Console sviluppatori! è necessario aggiornare in Google console ogni volta che si cambia in Google Chrome

enter image description here

4

La risposta accettata è errata. Puoi caricarlo sul webstore, pubblicarlo e installarlo dal webstore. Dopo l'installazione, trovare la directory dell'app di estensione installata (~/Library/Application\ Support/Google/Chrome/Default/Extensions/<ext id> su un Mac) e copiare la chiave key dal manifest.json installato nel codice sorgente manifest.json. Dopo aver aggiunto il campo key al numero manifest.json, l'ID app non cambierà durante lo sviluppo locale.

Fonte: https://developer.chrome.com/apps/app_identity#copy_key

+1

Ciò non rende nessuna delle risposte accettate non valide.Sì, puoi impedire che cambi (e hai descritto uno dei modi), ma la risposta non contiene _any_ istruzioni errate. – Xan

+0

ok, la risposta accettata non è la * soluzione * ideale. Basta aggiungere la tua app al webstore e pubblicarla. Puoi pubblicarlo privatamente in modo che sia disponibile solo per te o selezionare indirizzi e-mail per poterlo scaricare. – austinheiman

+1

sono d'accordo con @ web-student-ksu! dal momento che stiamo parlando di sviluppo, diciamo che voglio integrare un login google +, quindi ho bisogno di controllarlo sull'ambiente di sviluppo bfr caricandolo sul webstore. ho bisogno di una chiave per far funzionare l'identità. La risposta accettata da Xan non ha alcun senso. –