chrome.identity

Opis

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

Uprawnienia

identity

Typy

AccountInfo

Właściwości

  • id

    ciąg znaków

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

AccountStatus

Chrome 84 lub nowsza

Typ wyliczeniowy

„SYNC”
Określa, że synchronizacja jest włączona na koncie głównym.

„ANY”
Określa, czy istnieje konto podstawowe.

GetAuthTokenResult

Chrome 105 lub nowsza

Właściwości

  • grantedScopes

    string[] opcjonalne

    Lista zakresów OAuth 2.0 przyznanych rozszerzeniu.

  • token

    string opcjonalny

    Konkretny token powiązany z żądaniem.

InvalidTokenDetails

Właściwości

  • token

    ciąg znaków

    Konkretny token, który należy usunąć z pamięci podręcznej.

ProfileDetails

Chrome 84 lub nowsza

Właściwości

  • accountStatus

    AccountStatus opcjonalny

    Stan konta głównego zalogowanego w profilu, którego ProfileUserInfo powinien zostać zwrócony. Domyślna wartość to stan konta SYNC.

ProfileUserInfo

Właściwości

  • e-mail

    ciąg znaków

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

  • id

    ciąg znaków

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

TokenDetails

Właściwości

  • konto

    AccountInfo opcjonalnie

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

  • enableGranularPermissions

    wartość logiczna opcjonalna

    Chrome w wersji 87 lub nowszej

    Flaga enableGranularPermissions umożliwia rozszerzeniom wcześniejsze włączenie ekranu zgody na szczegółowe uprawnienia, na którym można przyznawać lub odrzucać poszczególne żądane uprawnienia.

  • interaktywny

    wartość logiczna opcjonalna

    Pobranie tokena może wymagać zalogowania się użytkownika w Chrome lub zatwierdzenia przez niego zakresów żądanych przez aplikację. Jeśli flaga interaktywności ma wartość true, getAuthToken wyświetli użytkownikowi odpowiedni komunikat. Gdy flaga ma wartość false lub jest pominięta, funkcja getAuthToken zwraca błąd za każdym razem, gdy wymagany jest prompt.

  • zakresy

    string[] opcjonalne

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

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

WebAuthFlowDetails

Właściwości

  • abortOnLoadForNonInteractive

    wartość logiczna opcjonalna

    Chrome 113 lub nowsza

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

    Gdy ta opcja jest ustawiona na true (domyślnie), przepływ kończy się natychmiast po załadowaniu strony. Jeśli ustawisz wartość false, proces zakończy się dopiero po upłynięciu czasu timeoutMsForNonInteractive. Jest to przydatne w przypadku dostawców tożsamości, którzy używają JavaScriptu do przekierowywania po wczytaniu strony.

  • interaktywny

    wartość logiczna opcjonalna

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

    Niektóre procesy uwierzytelniania mogą od razu przekierowywać do adresu URL wyniku, dlatego launchWebAuthFlow ukrywa widok internetowy do momentu, gdy pierwsze przekierowanie nastąpi do końcowego adresu URL lub gdy zakończy się ładowanie strony, która ma być wyświetlana.

    Jeśli flaga interactive ma wartość true, okno będzie wyświetlane po załadowaniu strony. Jeśli flaga ma wartość false lub jest pominięta, funkcja launchWebAuthFlow zwróci błąd, jeśli początkowa nawigacja nie zakończy przepływu.

    W przypadku przepływów, które używają JavaScriptu do przekierowania, wartość parametru abortOnLoadForNonInteractive można ustawić na false w połączeniu z ustawieniem parametru timeoutMsForNonInteractive, aby umożliwić stronie wykonanie przekierowań.

  • timeoutMsForNonInteractive

    number opcjonalny

    Chrome 113 lub nowsza

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

  • URL

    ciąg znaków

    Adres URL, który rozpoczyna proces autoryzacji.

Metody

clearAllCachedAuthTokens()

Chrome w wersji 87 lub nowszej
chrome.identity.clearAllCachedAuthTokens(): Promise<void>

Resetuje stan interfejsu Identity API:

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

Zwroty

  • Promise<void>

    Chrome 106 lub nowsza

getAccounts()

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

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

Atrybut getAccounts jest obsługiwany tylko w wersji deweloperskiej.

Zwroty

getAuthToken()

chrome.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 buforuje tokeny dostępu w pamięci, więc można wywoływać getAuthToken w sposób nieinteraktywny za każdym razem, gdy jest potrzebny token. Pamięć podręczna tokenów automatycznie obsługuje wygasanie.

Aby zapewnić użytkownikom wygodę, ważne jest, aby żądania interaktywnych tokenów były inicjowane przez interfejs w 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 kontekstu. W szczególności nie używaj funkcji getAuthToken interaktywnie przy pierwszym uruchomieniu aplikacji.

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

Parametry

Zwroty

getProfileUserInfo()

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

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

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

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

Parametry

  • szczegóły

    ProfileDetails opcjonalnie

    Chrome 84 lub nowsza

    Opcje profilu.

Zwroty

getRedirectURL()

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

Generuje przekierowanie do użycia w zmiennej launchWebAuthFlow.

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

Parametry

  • ścieżka

    string opcjonalny

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

Zwroty

  • ciąg znaków

launchWebAuthFlow()

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

Rozpoczyna proces uwierzytelniania pod określonym adresem URL.

Ta metoda umożliwia przepływy uwierzytelniania z użyciem dostawców tożsamości innych niż Google. W tym celu uruchamia widok internetowy i przekierowuje go do pierwszego adresu URL w przepływie uwierzytelniania dostawcy. Gdy dostawca przekieruje użytkownika na adres URL pasujący 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 w 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

removeCachedAuthToken()

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

Usuwa token dostępu OAuth2 z pamięci podręcznej tokenów interfejsu API tożsamości.

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

Parametry

Zwroty

  • Promise<void>

    Chrome 106 lub nowsza

Wydarzenia

onSignInChanged

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

Wyzwalane, gdy stan logowania konta w profilu użytkownika ulegnie zmianie.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

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