Sorry für noch eine weitere Frage, normalerweise gebe ich nicht nach, bis ich selbst eine Lösung gefunden habe, aber diese bringt mich drei Tage lang und es ist Zeit zuzugeben, dass ich feststecke ...
Ich versuche, eine Chrome-Erweiterung für die Verwendung von PushBullet-Benutzerdaten über OAuth2 zu authentifizieren:
background.js
%Vor%manifest.json:
%Vor%Wenn ich die Erweiterung lade:
chrome-extension: //lgekckejcpodobwpelekldnhcbenimbe/oauth2#access_token=o.zrrWrDozxMu6kftrMHb89siYJQhRVcoL
Ich habe nicht damit gerechnet, dass eine leere Seite geöffnet wird, sondern launchWebAuthFlow hat den URI erfasst und in das Konsolenprotokoll geschrieben, wie in der Callback-Funktion codiert ... aber es scheint zu warten ...
Die einzige Option ist jetzt, diese leere Seite zu schließen, um nur Folgendes zu sehen:
Unchecked runtime.lastError beim Ausführen von identity.launchWebAuthFlow: Der Benutzer hat den Zugriff nicht genehmigt.
Offensichtlich fehlt mir etwas Vitales ... brauche ich zusätzlichen Code "irgendwo", um den Callback-URI in meinem background.js zu erhalten?
Danke, wirklich die Hilfe zu schätzen.
Schattenhunter
Sie missverstehen das identity
API .
Sie können es nicht mit einer benutzerdefinierten Rückruf-URL verwenden. Die API erwartet, dass Sie eine URL des Formulars
verwenden %Vor%, die Sie mit einem Aufruf von chrome.identity.getRedirectURL(path)
Wenn der Anbieter zu einer URL umleitet, die dem Muster
https://<app-id>.chromiumapp.org/*
entspricht, wird das Fenster geschlossen und die endgültige Weiterleitungs-URL wird an die Rückruffunktion übergeben.
Dies liegt daran, dass viele OAuth-Anbieter eine chrome-extension://
URL nicht als gültig akzeptieren.
Wenn Sie das tun - großartig, aber Sie müssen Ihre eigene OAuth-Bibliothek verwenden (und den Token-Speicher, der schlechter ist). chrome.identity
funktioniert nur mit dem obigen.
Beachten Sie, dass die Netzwerkanforderung nicht wirklich an die chromiumapp.org
-Adresse in diesem Fluss gesendet wird - es ist eine "virtuelle" Adresse, die von der API abgefangen wird.
Eine schnelle Elaboration über die Lösung für alle anderen, die damit zu kämpfen haben:
Dies ist der Arbeitscode:
background.js
%Vor%manifest.js
%Vor%Nochmals vielen Dank Xan und einen schönen Tag.
Mit freundlichen Grüßen
Schattenhunter
Tags und Links javascript google-chrome-extension oauth-2.0 callback identity