browser.identity

Opis

Użyj interfejsu API chrome.identity, aby uzyskać tokeny dostępu OAuth2.

Uprawnienia

identity

Typy

AccountInfo

Właściwości

  • id

    tekst

    Unikalny identyfikator konta. Ten identyfikator nie zmieni się przez cały okres istnienia konta.

AccountStatus

Chrome 84 lub nowsza wersja browser.* od Chrome 148

Typ wyliczeniowy

"SYNC"
Określa, że synchronizacja jest włączona na koncie podstawowym.

"ANY"
Określa, czy istnieje konto główne.

GetAuthTokenResult

Chrome 105 lub nowsza wersja browser.* od Chrome 148

Właściwości

  • grantedScopes

    string[] opcjonalne

    Lista zakresów protokołu OAuth2 przyznanych rozszerzeniu.

  • token

    ciąg znaków opcjonalny

    Konkretny token powiązany z żądaniem.

InvalidTokenDetails

Właściwości

  • token

    tekst

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

ProfileDetails

Chrome 84 lub nowsza wersja browser.* od Chrome 148

Właściwości

  • accountStatus

    AccountStatus opcjonalne

    Stan konta podstawowego zalogowanego na profil, którego ProfileUserInfo ma zostać zwrócony. Domyślny stan konta to SYNC.

ProfileUserInfo

Właściwości

  • e-mail

    tekst

    Adres e-mail konta użytkownika zalogowanego na bieżący profil. Pole jest puste, jeśli użytkownik nie jest zalogowany lub nie określono uprawnienia manifestu identity.email.

  • id

    tekst

    Unikalny identyfikator konta. Ten identyfikator nie zmieni się przez cały okres istnienia konta. Pole jest puste, jeśli użytkownik nie jest zalogowany lub (w wersji M41 lub nowszej) nie określono uprawnienia identity.email w pliku manifestu.

TokenDetails

Właściwości

  • konto

    AccountInfo opcjonalny

    Identyfikator konta, którego token ma zostać zwrócony. Jeśli nie zostanie określone, funkcja użyje konta z profilu Chrome: konta synchronizacji, jeśli istnieje, lub pierwszego konta internetowego Google.

  • enableGranularPermissions

    boolean opcjonalne

    Chrome 87 lub nowsza browser.* od Chrome 148

    Flaga enableGranularPermissions umożliwia rozszerzeniom wcześniejsze wyrażenie zgody na ekran zgody na szczegółowe uprawnienia, na którym żądane uprawnienia są przyznawane lub odrzucane indywidualnie.

  • interaktywny

    boolean opcjonalne

    Pobranie tokena może wymagać od użytkownika zalogowania się w Chrome lub zatwierdzenia zakresów, o które prosi aplikacja. Jeśli flaga interaktywności ma wartość true, getAuthToken będzie w razie potrzeby wyświetlać użytkownikowi prośby o potwierdzenie. Gdy flaga ma wartość false lub zostanie pominięta, getAuthToken zwróci błąd za każdym razem, gdy wymagany będzie prompt.

  • zakresy

    string[] opcjonalne

    Lista zakresów OAuth2, o które należy poprosić.

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

WebAuthFlowDetails

Właściwości

  • abortOnLoadForNonInteractive

    boolean opcjonalne

    Chrome 113 lub nowsza wersja browser.* od Chrome 148

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

    Jeśli ustawisz wartość true (domyślną), proces zakończy się natychmiast po wczytaniu strony. Jeśli ustawisz wartość false, przepływ zostanie zakończony dopiero po upływie timeoutMsForNonInteractive. Jest to przydatne w przypadku dostawców tożsamości, którzy używają JavaScriptu do przekierowywania po wczytaniu strony.

  • interaktywny

    boolean opcjonalne

    Określa, czy proces uwierzytelniania ma być uruchamiany w trybie interaktywnym.

    Niektóre procesy uwierzytelniania mogą natychmiast przekierowywać do adresu URL wyniku, dlatego launchWebAuthFlow ukrywa widok internetowy, dopóki pierwsze przejście nie przekieruje do końcowego adresu URL lub nie zakończy się wczytywanie strony, która ma zostać wyświetlona.

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

    W przypadku procesów, które używają JavaScriptu do przekierowywania, parametr abortOnLoadForNonInteractive można ustawić na false w połączeniu z ustawieniem timeoutMsForNonInteractive, aby umożliwić stronie wykonanie przekierowań.

  • timeoutMsForNonInteractive

    number optional

    Chrome 113 lub nowsza wersja browser.* od Chrome 148

    Maksymalny czas (w milisekundach), przez jaki launchWebAuthFlow może działać w trybie nieinteraktywnym. Ma zastosowanie tylko wtedy, gdy zasada interactive ma wartość false.

  • URL

    tekst

    Adres URL, który inicjuje proces uwierzytelniania.

Metody

clearAllCachedAuthTokens()

Chrome 87 lub nowsza browser.* od Chrome 148
browser.identity.clearAllCachedAuthTokens(): Promise<void>

Resetuje stan interfejsu Identity API:

  • Usuwa wszystkie tokeny dostępu OAuth2 z pamięci podręcznej tokenów.
  • Usuwa ustawienia konta użytkownika
  • Cofnięcie autoryzacji użytkownika we wszystkich procesach uwierzytelniania.

Zwroty

  • thought Promise<void>

    Chrome 106 lub nowsza browser.* od Chrome 148

    Zwraca obietnicę, która jest spełniana po wyczyszczeniu stanu.

getAccounts()

Wersja deweloperska
browser.identity.getAccounts(): Promise<AccountInfo[]>

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

getAccounts jest obsługiwany tylko w wersji deweloperskiej.

Zwroty

getAuthToken()

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

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

Interfejs Identity API przechowuje tokeny dostępu w pamięci podręcznej, więc możesz wywoływać metodę getAuthToken w trybie nieinteraktywnym za każdym razem, gdy potrzebny jest token. Pamięć podręczna tokenów automatycznie obsługuje wygasanie.

Aby zapewnić użytkownikom wygodę, ważne jest, aby interaktywne żądania tokenów były inicjowane przez interfejs aplikacji, który wyjaśnia, do czego służy autoryzacja. Jeśli tego nie zrobisz, użytkownicy będą otrzymywać prośby o autoryzację lub ekrany logowania w Chrome, jeśli nie są zalogowani, bez żadnego kontekstu. W szczególności nie używaj interaktywnie getAuthToken, gdy aplikacja jest uruchamiana po raz pierwszy.

Uwaga: gdy funkcja jest wywoływana z wywołaniem zwrotnym, zamiast zwracać obiekt, zwraca te 2 właściwości jako osobne argumenty przekazywane do wywołania zwrotnego.

Parametry

Zwroty

  • Chrome 105 lub nowsza wersja browser.* od Chrome 148

    Zwraca obiekt Promise, który jest rozwiązywany za pomocą tokena dostępu OAuth2 określonego w pliku manifestu lub odrzucany, jeśli wystąpił błąd. Parametr grantedScopes jest wypełniany od Chrome 87. Jeśli ten parametr jest dostępny, zawiera listę przyznanych zakresów odpowiadających zwróconemu tokenowi.

getProfileUserInfo()

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

Pobiera adres e-mail i ukryty identyfikator GAIA użytkownika zalogowanego na profilu.

Wymaga uprawnienia identity.email w pliku manifestu. W przeciwnym razie zwraca pusty wynik.

Ten interfejs API różni się od identity.getAccounts pod 2 względami. Zwracane informacje są dostępne offline i dotyczą tylko konta podstawowego w profilu.

Parametry

  • szczegóły

    ProfileDetails opcjonalne

    Chrome 84 lub nowsza wersja browser.* od Chrome 148

    Opcje profilu.

Zwroty

  • Chrome 106 lub nowsza browser.* od Chrome 148

    Zwraca obiekt Promise, który jest rozwiązywany za pomocą ProfileUserInfo podstawowego konta Chrome, lub pusty obiekt ProfileUserInfo, jeśli konto z podanym details nie istnieje.

getRedirectURL()

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

Generuje adres URL przekierowania, który będzie używany w usłudze launchWebAuthFlow.

Wygenerowane adresy URL są zgodne ze wzorcem https://<app-id>.chromiumapp.org/*.

Parametry

  • ścieżka

    ciąg znaków opcjonalny

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

Zwroty

  • tekst

launchWebAuthFlow()

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

Rozpoczyna proces uwierzytelniania pod określonym adresem URL.

Ta metoda umożliwia przepływy uwierzytelniania u dostawców tożsamości innych niż Google przez uruchomienie widoku internetowego i przejście do pierwszego adresu URL w przepływie uwierzytelniania dostawcy. Gdy dostawca przekieruje do adresu URL pasującego do wzorca https://<app-id>.chromiumapp.org/*, okno zostanie zamknięte, a ostateczny adres URL przekierowania zostanie przekazany do funkcji callback.

Aby zapewnić użytkownikom wygodę, ważne jest, aby interaktywne procesy uwierzytelniania były inicjowane przez interfejs aplikacji, który wyjaśnia, do czego służy autoryzacja. Jeśli tego nie zrobisz, użytkownicy będą otrzymywać prośby o autoryzację bez kontekstu. W szczególności nie uruchamiaj interaktywnego procesu uwierzytelniania przy pierwszym uruchomieniu aplikacji.

Parametry

Zwroty

  • Promise<string | undefined>

    Chrome 106 lub nowsza browser.* od Chrome 148

    Zwraca obiekt Promise, który rozwiązuje się z adresem URL przekierowanym z powrotem do aplikacji.

removeCachedAuthToken()

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

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

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

Parametry

Zwroty

  • thought Promise<void>

    Chrome 106 lub nowsza browser.* od Chrome 148

    Zwraca obiekt Promise, który jest rozwiązywany po usunięciu tokena z pamięci podręcznej.

Wydarzenia

onSignInChanged

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

Uruchamiane, gdy stan logowania zmienia się na koncie w profilu użytkownika.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

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