chrome.identity

Opis

Żeby uzyskać tokeny dostępu OAuth2, użyj interfejsu API chrome.identity.

Uprawnienia

identity

Typy

AccountInfo

Właściwości

  • id

    ciąg znaków

    Niepowtarzalny identyfikator konta. Identyfikator nie zmieni się przez cały okres istnienia konta.

AccountStatus

Chrome 84 i nowsze .

Typ wyliczeniowy

"SYNC"
Określa, czy synchronizacja jest włączona na koncie głównym.

"ANY"
Określa istnienie konta podstawowego, jeśli takie istnieje.

GetAuthTokenResult

Chrome w wersji 105 lub nowszej .

Właściwości

  • grantedScopes

    string[] opcjonalnie

    Lista zakresów OAuth2 przyznanych rozszerzeniu.

  • token

    ciąg znaków opcjonalny

    Konkretny token powiązany z żądaniem.

InvalidTokenDetails

Właściwości

  • token

    ciąg znaków

    Konkretny token, który powinien zostać usunięty z pamięci podręcznej.

ProfileDetails

Chrome 84 i nowsze .

Właściwości

  • accountStatus

    AccountStatus opcjonalny

    Stan konta podstawowego zalogowanego w profilu, którego wartość ProfileUserInfo powinna zostać zwrócona. Domyślny stan konta to SYNC.

ProfileUserInfo

Właściwości

  • e-mail

    ciąg znaków

    Adres e-mail konta użytkownika zalogowanego w bieżącym profilu. Pole jest puste, jeśli użytkownik nie jest zalogowany lub nie określono uprawnień do pliku manifestu identity.email.

  • id

    ciąg znaków

    Niepowtarzalny identyfikator konta. Identyfikator nie zmieni się przez cały okres istnienia konta. Pole puste, jeśli użytkownik nie jest zalogowany lub (w wersji M41+) nie określono uprawnień do pliku manifestu identity.email.

TokenDetails

Właściwości

  • konto

    Opcjonalne AccountInfo

    Identyfikator konta, którego token powinien zostać zwrócony. Jeśli nie określono tego ustawienia, funkcja będzie używać konta z profilu Chrome: konta synchronizacji (jeśli istnieje) lub pierwszego konta internetowego Google.

  • enableGranularPermissions

    Wartość logiczna opcjonalna

    Chrome 87 i nowsze .

    Flaga enableGranularPermissions umożliwia rozszerzeniom włączanie wczesnego dostępu do szczegółowego ekranu zgody na uprawnienia, gdzie prośby o uprawnienia są przyznawane lub odrzucane pojedynczo.

  • interaktywny

    Wartość logiczna opcjonalna

    Pobranie tokena może wymagać od użytkownika zalogowania się w Chrome lub zatwierdzenia żądanych zakresów aplikacji. Jeśli flaga interaktywna to true, getAuthToken wyświetli użytkownikowi prośbę w razie potrzeby. Jeśli flaga ma wartość false lub jest pominięta, getAuthToken zwraca błąd za każdym razem, gdy wymagane jest wyświetlenie prośby.

  • zakresy

    string[] opcjonalnie

    Lista zakresów OAuth2, o które może poprosić.

    Jeśli pole scopes jest obecne, zastępuje ono listę zakresów określoną w pliku manifest.json.

WebAuthFlowDetails

Właściwości

  • abortOnLoadForNonInteractive

    Wartość logiczna opcjonalna

    Chrome w wersji 113 lub nowszej .

    Określa, czy po załadowaniu strony zakończyć działanie usługi launchWebAuthFlow w przypadku żądań nieinteraktywnych. Ten parametr nie ma wpływu na interaktywne przepływy.

    Jeśli ustawisz wartość true (domyślnie), przepływ zakończy się natychmiast po wczytaniu strony. Gdy ustawisz wartość false, przepływ zakończy się dopiero po pomyślnym zakończeniu procesu timeoutMsForNonInteractive. Jest to przydatne w przypadku dostawców tożsamości, którzy używają JavaScriptu do wykonywania przekierowań po wczytaniu strony.

  • interaktywny

    Wartość logiczna opcjonalna

    Określa, czy uruchomić przepływ uwierzytelniania w trybie interaktywnym.

    Niektóre przepływy uwierzytelniania mogą natychmiast przekierowywać do adresu URL wyniku, więc launchWebAuthFlow ukrywa widok internetowy, dopóki pierwsza nawigacja nie przekieruje do końcowego adresu URL lub nie zakończy wczytywania strony, która ma zostać wyświetlona.

    Jeśli flaga interactive ma wartość true, okno wyświetli się po zakończeniu wczytywania strony. Jeśli flaga ma wartość false lub jest pominięta, launchWebAuthFlow zwróci błąd, jeśli początkowa nawigacja nie zakończy procesu.

    W przypadku przepływów, które do przekierowań korzystają z JavaScriptu, parametr abortOnLoadForNonInteractive może mieć wartość false w połączeniu z ustawieniem timeoutMsForNonInteractive, by strona mogła wykonać dowolne przekierowania.

  • timeoutMsForNonInteractive

    liczba opcjonalnie

    Chrome w wersji 113 lub nowszej .

    Maksymalny czas (w milisekundach) dozwolone działanie launchWebAuthFlow w trybie nieinteraktywnym. Działa tylko wtedy, gdy interactive ma wartość false.

  • URL

    ciąg znaków

    Adres URL, który inicjuje proces uwierzytelniania.

Metody

clearAllCachedAuthTokens()

Obietnica Chrome w wersji 87 lub nowszej
chrome.identity.clearAllCachedAuthTokens(
  callback?: function,
)

Resetuje stan Identity API:

  • Usuwa wszystkie tokeny dostępu OAuth2 z pamięci podręcznej tokenów
  • Usuwa ustawienia konta użytkownika
  • Cofnie autoryzację użytkownika ze wszystkich przepływów uwierzytelniania

Parametry

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Obietnica<void>

    Chrome 106 lub nowszy .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

getAccounts()

Obietnica Wersja deweloperska
chrome.identity.getAccounts(
  callback?: function,
)

Pobiera listę obiektów AccountInfo opisujących konta znajdujące się w profilu.

Usługa getAccounts jest obsługiwana tylko w wersji deweloperskiej.

Parametry

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    (accounts: AccountInfo[]) => void

Zwroty

  • Promise&lt;AccountInfo[]&gt;

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

getAuthToken()

Obietnica .
chrome.identity.getAuthToken(
  details?: TokenDetails,
  callback?: function,
)

Pobiera token dostępu OAuth2, używając identyfikatora klienta i zakresów określonych w sekcji oauth2 pliku manifest.json.

Identity API buforuje tokeny dostępu w pamięci, więc można wywoływać getAuthToken nieinteraktywnie za każdym razem, gdy wymagany jest token. Pamięć podręczna tokenów automatycznie obsługuje okres ważności.

Ze względu na wygodę użytkowników ważne jest, aby interfejs użytkownika w aplikacji wysyłał żądania tokenów interaktywnych, wyjaśniające, do czego służy autoryzacja. Jeśli tego nie zrobisz, użytkownicy będą otrzymywać żądania autoryzacji lub ekrany logowania w Chrome, jeśli nie są zalogowani, bez żadnego kontekstu. W szczególności nie używaj funkcji getAuthToken w sposób interaktywny przy pierwszym uruchomieniu aplikacji.

Uwaga: po wywołaniu z wywołaniem zwrotnym ta funkcja nie zwraca obiektu, ale zwraca 2 właściwości jako osobne argumenty przekazywane do wywołania zwrotnego.

Parametry

Zwroty

  • Promise&lt;GetAuthTokenResult&gt;

    Chrome w wersji 105 lub nowszej .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

getProfileUserInfo()

Obietnica .
chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
  callback?: function,
)

Pobiera adres e-mail i zaciemniony identyfikator GAIA użytkownika zalogowanego w profilu.

Wymaga uprawnień do pliku manifestu identity.email. W przeciwnym razie zwraca pusty wynik.

Ten interfejs API różni się od identity.getAccounts na 2 sposoby. Zwrócone informacje są dostępne offline i dotyczą tylko konta głównego dla profilu.

Parametry

Zwroty

  • Promise&lt;ProfileUserInfo&gt;

    Chrome 106 lub nowszy .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

getRedirectURL()

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

Generuje przekierowanie do użycia w launchWebAuthFlow.

Wygenerowane adresy URL pasują do wzorca https://<app-id>.chromiumapp.org/*.

Parametry

  • ścieżka

    ciąg znaków opcjonalny

    Ścieżka dołączana na końcu wygenerowanego adresu URL.

Zwroty

  • ciąg znaków

launchWebAuthFlow()

Obietnica .
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)

Uruchamia proces uwierzytelniania pod określonym adresem URL.

Ta metoda włącza przepływy uwierzytelniania z dostawcami tożsamości innych niż Google przez uruchomienie widoku internetowego i przejście do pierwszego adresu URL w procesie uwierzytelniania dostawcy. Gdy dostawca wykona przekierowanie na adres URL pasujący do wzorca https://<app-id>.chromiumapp.org/*, okno zostanie zamknięte, a końcowy adres URL przekierowania zostanie przekazany do funkcji callback.

Dla wygody użytkowników ważne jest, aby interaktywne przepływy uwierzytelniania były inicjowane przez interfejs aplikacji i wyjaśniając, do czego służy autoryzacja. Jeśli tego nie zrobisz, użytkownicy będą otrzymywać żądania autoryzacji bez kontekstu. W szczególności nie uruchamiaj interaktywnego procesu uwierzytelniania przy pierwszym uruchomieniu aplikacji.

Parametry

  • szczegóły

    Opcje przepływu WebAuth.

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    (responseUrl?: string) => void

    • responseUrl

      ciąg znaków opcjonalny

Zwroty

  • Obietnica<ciąg | niezdefiniowane>

    Chrome 106 lub nowszy .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

removeCachedAuthToken()

Obietnica .
chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
  callback?: function,
)

Usuwa token dostępu OAuth2 z pamięci podręcznej tokenów interfejsu Identity API.

Jeśli token dostępu jest nieprawidłowy, należy go przekazać do removeCachedAuthToken, aby usunąć go z pamięci podręcznej. Aplikacja może następnie pobrać nowy token za pomocą getAuthToken.

Parametry

  • szczegóły

    Informacje o tokenie.

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Obietnica<void>

    Chrome 106 lub nowszy .

    Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.

Wydarzenia

onSignInChanged

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

Uruchamiane po zmianie stanu logowania na konto w profilu użytkownika.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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