chrome.identity

Beschreibung

Verwenden Sie die chrome.identity API, um OAuth2-Zugriffstokens abzurufen.

Berechtigungen

identity

Typen

AccountInfo

Attribute

  • id

    String

    Eine eindeutige Kennung für das Konto. Diese ID ändert sich während der gesamten Lebensdauer des Kontos nicht.

AccountStatus

Chrome 84 und höher

Enum

SYNC
Gibt an, dass die Synchronisierung für das primäre Konto aktiviert ist.

„ANY“
Gibt an, ob ein primäres Konto vorhanden ist.

GetAuthTokenResult

Chrome 105 und höher

Attribute

  • grantedScopes

    string[] optional

    Eine Liste der OAuth2-Bereiche, die der Erweiterung gewährt wurden.

  • Token

    String optional

    Das spezifische Token, das der Anfrage zugeordnet ist.

InvalidTokenDetails

Attribute

  • Token

    String

    Das spezifische Token, das aus dem Cache entfernt werden soll.

ProfileDetails

Chrome 84 und höher

Attribute

  • accountStatus

    AccountStatus optional

    Der Status des primären Kontos, das in einem Profil angemeldet ist, dessen ProfileUserInfo zurückgegeben werden soll. Die Standardeinstellung ist der SYNC-Kontostatus.

ProfileUserInfo

Attribute

  • E-Mail

    String

    Eine E‑Mail-Adresse für das Nutzerkonto, mit dem Sie im aktuellen Profil angemeldet sind. Leer, wenn der Nutzer nicht angemeldet ist oder die Manifestberechtigung identity.email nicht angegeben ist.

  • id

    String

    Eine eindeutige Kennung für das Konto. Diese ID ändert sich während der gesamten Lebensdauer des Kontos nicht. Leer, wenn der Nutzer nicht angemeldet ist oder (ab M41) die Manifestberechtigung identity.email nicht angegeben ist.

TokenDetails

Attribute

  • Konto

    AccountInfo optional

    Die Konto-ID, deren Token zurückgegeben werden soll. Wenn nichts angegeben ist, verwendet die Funktion ein Konto aus dem Chrome-Profil: das Synchronisierungskonto, falls vorhanden, oder andernfalls das erste Google-Webkonto.

  • enableGranularPermissions

    boolean optional

    Chrome 87 und höher

    Mit dem Flag enableGranularPermissions können Erweiterungen den detaillierten Zustimmungsbildschirm für Berechtigungen vorab aktivieren. Auf diesem Bildschirm werden angeforderte Berechtigungen einzeln gewährt oder abgelehnt.

  • interactive

    boolean optional

    Zum Abrufen eines Tokens muss sich der Nutzer möglicherweise in Chrome anmelden oder die angeforderten Bereiche der Anwendung genehmigen. Wenn das interaktive Flag true ist, fordert getAuthToken den Nutzer bei Bedarf auf. Wenn das Flag false ist oder weggelassen wird, gibt getAuthToken immer einen Fehler zurück, wenn ein Prompt erforderlich wäre.

  • Umfang

    string[] optional

    Eine Liste der anzufordernden OAuth2-Bereiche.

    Wenn das Feld scopes vorhanden ist, wird die in manifest.json angegebene Liste der Bereiche überschrieben.

WebAuthFlowDetails

Attribute

  • abortOnLoadForNonInteractive

    boolean optional

    Chrome 113 und höher

    Gibt an, ob launchWebAuthFlow für nicht interaktive Anfragen nach dem Laden der Seite beendet werden soll. Dieser Parameter hat keine Auswirkungen auf interaktive Abläufe.

    Wenn der Wert auf true (Standard) festgelegt ist, wird der Ablauf sofort nach dem Laden der Seite beendet. Wenn false festgelegt ist, wird der Ablauf erst nach Ablauf von timeoutMsForNonInteractive beendet. Dies ist nützlich für Identitätsanbieter, die JavaScript verwenden, um Weiterleitungen nach dem Laden der Seite auszuführen.

  • interactive

    boolean optional

    Gibt an, ob der Autorisierungsvorgang im interaktiven Modus gestartet werden soll.

    Da bei einigen Autorisierungsabläufen möglicherweise sofort zu einer Ergebnis-URL weitergeleitet wird, wird die Webansicht von launchWebAuthFlow ausgeblendet, bis die erste Navigation entweder zur finalen URL weiterleitet oder das Laden einer Seite, die angezeigt werden soll, abgeschlossen ist.

    Wenn das Flag interactive auf true gesetzt ist, wird das Fenster angezeigt, wenn eine Seite geladen wurde. Wenn das Flag false ist oder weggelassen wird, gibt launchWebAuthFlow einen Fehler zurück, wenn der Ablauf bei der ersten Navigation nicht abgeschlossen wird.

    Bei Abläufen, bei denen JavaScript für die Weiterleitung verwendet wird, kann abortOnLoadForNonInteractive auf false gesetzt werden. In Kombination mit der Einstellung von timeoutMsForNonInteractive wird der Seite so die Möglichkeit gegeben, Weiterleitungen auszuführen.

  • timeoutMsForNonInteractive

    number optional

    Chrome 113 und höher

    Die maximale Zeit in Millisekunden, die launchWebAuthFlow insgesamt im nicht interaktiven Modus ausgeführt werden darf. Hat nur Auswirkungen, wenn interactive false ist.

  • URL

    String

    Die URL, mit der der Authentifizierungsvorgang gestartet wird.

Methoden

clearAllCachedAuthTokens()

Chrome 87 und höher
chrome.identity.clearAllCachedAuthTokens(): Promise<void>

Setzt den Status der Identity API zurück:

  • Entfernt alle OAuth2-Zugriffstokens aus dem Tokencache.
  • Entfernt die Kontoeinstellungen des Nutzers
  • Entzieht dem Nutzer die Autorisierung für alle Authentifizierungsabläufe

Ausgabe

  • Promise<void>

    Chrome 106 und höher

getAccounts()

Dev-Channel
chrome.identity.getAccounts(): Promise<AccountInfo[]>

Ruft eine Liste von AccountInfo-Objekten ab, die die im Profil vorhandenen Konten beschreiben.

getAccounts wird nur im Entwickler-Channel unterstützt.

Ausgabe

getAuthToken()

chrome.identity.getAuthToken(
  details?: TokenDetails,
)
: Promise<GetAuthTokenResult>

Ruft ein OAuth2-Zugriffstoken mit der Client-ID und den Bereichen ab, die im Abschnitt oauth2 von manifest.json angegeben sind.

Die Identity API speichert Zugriffstokens im Arbeitsspeicher im Cache. Sie können getAuthToken also jederzeit nicht interaktiv aufrufen, wenn ein Token erforderlich ist. Der Token-Cache verarbeitet das Ablaufen von Tokens automatisch.

Für eine gute Nutzerfreundlichkeit ist es wichtig, dass interaktive Tokenanfragen über die Benutzeroberfläche Ihrer App initiiert werden und dort erklärt wird, wofür die Autorisierung erforderlich ist. Andernfalls erhalten Ihre Nutzer Autorisierungsanfragen oder Chrome-Anmeldebildschirme ohne Kontext, wenn sie nicht angemeldet sind. Insbesondere sollten Sie getAuthToken nicht interaktiv verwenden, wenn Ihre App zum ersten Mal gestartet wird.

Hinweis: Wenn diese Funktion mit einem Callback aufgerufen wird, gibt sie kein Objekt zurück, sondern die beiden Eigenschaften als separate Argumente, die an den Callback übergeben werden.

Parameter

Ausgabe

getProfileUserInfo()

chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
)
: Promise<ProfileUserInfo>

Ruft die E‑Mail-Adresse und die verschleierte GAIA-ID des Nutzers ab, der in einem Profil angemeldet ist.

Erfordert die Manifestberechtigung identity.email. Andernfalls wird ein leeres Ergebnis zurückgegeben.

Diese API unterscheidet sich in zwei Punkten von identity.getAccounts. Die zurückgegebenen Informationen sind offline verfügbar und gelten nur für das primäre Konto des Profils.

Parameter

  • Details

    ProfileDetails optional

    Chrome 84 und höher

    Profiloptionen.

Ausgabe

getRedirectURL()

chrome.identity.getRedirectURL(
  path?: string,
)
: string

Generiert eine Weiterleitungs-URL, die in launchWebAuthFlow verwendet werden soll.

Die generierten URLs entsprechen dem Muster https://<app-id>.chromiumapp.org/*.

Parameter

  • Pfad

    String optional

    Der Pfad, der an das Ende der generierten URL angehängt wird.

Ausgabe

  • String

launchWebAuthFlow()

chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
)
: Promise<string | undefined>

Startet einen Authentifizierungsablauf unter der angegebenen URL.

Mit dieser Methode können Authentifizierungsabläufe mit Nicht-Google-Identitätsanbietern aktiviert werden, indem eine Webansicht gestartet und zur ersten URL im Authentifizierungsablauf des Anbieters navigiert wird. Wenn der Anbieter zu einer URL weiterleitet, die dem Muster https://<app-id>.chromiumapp.org/* entspricht, wird das Fenster geschlossen und die endgültige Weiterleitungs-URL wird an die Funktion callback übergeben.

Für eine gute Nutzererfahrung ist es wichtig, dass interaktive Authentifizierungsabläufe über die Benutzeroberfläche Ihrer App initiiert werden und dort erklärt wird, wofür die Autorisierung erforderlich ist. Andernfalls erhalten Ihre Nutzer Autorisierungsanfragen ohne Kontext. Starten Sie insbesondere keinen interaktiven Authentifizierungsablauf, wenn Ihre App zum ersten Mal gestartet wird.

Parameter

Ausgabe

  • Promise<string | undefined>

    Chrome 106 und höher

removeCachedAuthToken()

chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
)
: Promise<void>

Entfernt ein OAuth2-Zugriffstoken aus dem Tokencache der Identity API.

Wenn ein Zugriffstoken als ungültig erkannt wird, sollte es an „removeCachedAuthToken“ übergeben werden, um es aus dem Cache zu entfernen. Die App kann dann mit getAuthToken ein neues Token abrufen.

Parameter

Ausgabe

  • Promise<void>

    Chrome 106 und höher

Ereignisse

onSignInChanged

chrome.identity.onSignInChanged.addListener(
  callback: function,
)

Wird ausgelöst, wenn sich der Anmeldestatus für ein Konto im Profil des Nutzers ändert.

Parameter

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (account: AccountInfo, signedIn: boolean) => void