identity
Verwenden Sie die identity
API, um einen OAuth2 Autorisierungscode oder Zugriffstoken zu erhalten, mit dem eine Erweiterung dann auf Benutzerdaten von einem Dienst zugreifen kann, der OAuth2-Zugriff unterstützt (wie Google oder Facebook).
Da OAuth2-Flows je nach Dienstanbieter variieren, sollten Sie die Dokumentation des jeweiligen Dienstanbieters konsultieren, um diese API zu nutzen. Zum Beispiel:
Die identity
API stellt die Funktion identity.launchWebAuthFlow()
bereit. Diese authentifiziert den Benutzer beim Dienst, falls erforderlich, und bittet den Benutzer, die Erweiterung zum Zugriff auf Daten zu autorisieren, falls erforderlich. Die Funktion wird entweder mit einem Zugriffstoken oder einem Autorisierungscode abgeschlossen, abhängig vom Anbieter.
Die Erweiterung schließt dann den OAuth2-Flow ab, um einen validierten Zugriffstoken zu erhalten und nutzt das Token in HTTPS-Anfragen, um auf die Benutzerdaten entsprechend der erteilten Autorisierung zuzugreifen.
Um diese API zu verwenden, müssen Sie die "identity" API-Berechtigung besitzen.
Einrichtung
Es gibt einige Einrichtungsschritte, die Sie durchführen müssen, bevor Sie Ihre Erweiterung veröffentlichen.
Abrufen der Redirect-URL
Die Redirect-URL repräsentiert den Endpunkt von identity.launchWebAuthFlow()
, bei dem das Zugriffstoken oder der Autorisierungscode an die Erweiterung übermittelt wird. Der Browser extrahiert das Ergebnis von der Redirect-URL, ohne deren Antwort zu laden.
Sie erhalten die Redirect-URL durch den Aufruf von identity.getRedirectURL()
. Diese Funktion leitet eine Redirect-URL von der ID des Add-ons ab. Um das Testen zu vereinfachen, setzen Sie die ID Ihres Add-ons explizit mit dem browser_specific_settings
Schlüssel (ansonsten erhalten Sie bei jedem vorübergehenden Installieren des Add-ons eine andere Redirect-URL).
identity.getRedirectURL()
gibt eine URL bei einem festen Domainnamen und einem von der Add-on-ID abgeleiteten Subdomain zurück. Einige OAuth-Server (wie Google) akzeptieren nur Domains mit einer verifizierten Inhaberschaft als Redirect-URL. Da die Dummy-Domain nicht von Erweiterungsentwicklern kontrolliert werden kann, kann die Standarddomain nicht immer verwendet werden.
Jedoch sind Loopback-Adressen eine akzeptierte Alternative, die keine Domänenvalidierung erfordern (basierend auf RFC 8252, Abschnitt 7.3). Ab Firefox 86 ist eine Loopback-Adresse mit dem Format http://127.0.0.1/mozoauth2/[subdomain der von identity.getRedirectURL() zurückgegebenen URL]
als Wert für die Redirect-URL zulässig.
Hinweis: Ab Firefox 75 müssen Sie die von identity.getRedirectURL()
zurückgegebene Redirect-URL verwenden. Frühere Versionen erlaubten das Bereitstellen beliebiger Redirect-URLs.
Ab Firefox 86 kann auch die oben beschriebene spezielle Loopback-Adresse verwendet werden.
Sie werden die Redirect-URL an zwei Stellen verwenden:
- Geben Sie sie an, wenn Sie Ihre Erweiterung als OAuth2-Client registrieren.
- Übergeben Sie sie als URL-Parameter an
identity.launchWebAuthFlow()
, der derurl
-Argument dieser Funktion hinzugefügt wird.
Registrierung Ihrer Erweiterung
Bevor Sie OAuth2 mit einem Dienstanbieter verwenden, müssen Sie die Erweiterung beim Anbieter als OAuth2-Client registrieren.
Dies wird tendenziell spezifisch für den Dienstanbieter sein, bedeutet jedoch im Allgemeinen, dass Sie ein Konto für Ihre Erweiterung auf der Website des Anbieters erstellen. In diesem Prozess geben Sie Ihre Redirect-URL an und erhalten eine Client-ID (und manchmal auch ein Geheimnis). Diese müssen Sie an identity.launchWebAuthFlow()
übergeben.
Funktionen
identity.getRedirectURL()
-
Erhält die Redirect-URL.
identity.launchWebAuthFlow()
-
Startet WAF.
Browser-Kompatibilität
BCD tables only load in the browser
Beispiel-Erweiterungen
Hinweis: Diese API basiert auf der chrome.identity
-API von Chromium.