Opis
Użyj interfejsu API chrome.identity, aby uzyskać tokeny dostępu OAuth2.
Uprawnienia
identityTypy
AccountInfo
Właściwości
-
id
tekst
Unikalny identyfikator konta. Ten identyfikator nie zmieni się przez cały okres istnienia konta.
AccountStatus
Typ wyliczeniowy
"SYNC"
Określa, że synchronizacja jest włączona na koncie podstawowym.
"ANY"
Określa, czy istnieje konto główne.
GetAuthTokenResult
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
Właściwości
-
accountStatus
AccountStatus opcjonalne
Stan konta podstawowego zalogowanego na profil, którego
ProfileUserInfoma zostać zwrócony. Domyślny stan konta toSYNC.
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.emailw 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 148Flaga
enableGranularPermissionsumoż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,getAuthTokenbędzie w razie potrzeby wyświetlać użytkownikowi prośby o potwierdzenie. Gdy flaga ma wartośćfalselub zostanie pominięta,getAuthTokenzwró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
scopesjest 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 148Określa, czy po wczytaniu strony należy zakończyć działanie
launchWebAuthFloww 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ływietimeoutMsForNonInteractive. 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
launchWebAuthFlowukrywa 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
interactivema wartośćtrue, okno zostanie wyświetlone po zakończeniu wczytywania strony. Jeśli flaga ma wartośćfalselub zostanie pominięta,launchWebAuthFlowzwróci błąd, jeśli początkowa nawigacja nie zakończy procesu.W przypadku procesów, które używają JavaScriptu do przekierowywania, parametr
abortOnLoadForNonInteractivemożna ustawić nafalsew połączeniu z ustawieniemtimeoutMsForNonInteractive, aby umożliwić stronie wykonanie przekierowań. -
timeoutMsForNonInteractive
number optional
Chrome 113 lub nowsza wersja browser.* od Chrome 148Maksymalny czas (w milisekundach), przez jaki
launchWebAuthFlowmoże działać w trybie nieinteraktywnym. Ma zastosowanie tylko wtedy, gdy zasadainteractivema wartośćfalse. -
URL
tekst
Adres URL, który inicjuje proces uwierzytelniania.
Metody
clearAllCachedAuthTokens()
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 148Zwraca obietnicę, która jest spełniana po wyczyszczeniu stanu.
getAccounts()
browser.identity.getAccounts(): Promise<AccountInfo[]>
Pobiera listę obiektów AccountInfo opisujących konta w profilu.
getAccounts jest obsługiwany tylko w wersji deweloperskiej.
Zwroty
-
Promise<AccountInfo[]>
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
-
szczegóły
TokenDetails opcjonalny
Opcje tokena.
Zwroty
-
Promise<GetAuthTokenResult>
Chrome 105 lub nowsza wersja browser.* od Chrome 148Zwraca 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
grantedScopesjest 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 148Opcje profilu.
Zwroty
-
Promise<ProfileUserInfo>
Chrome 106 lub nowsza browser.* od Chrome 148Zwraca obiekt Promise, który jest rozwiązywany za pomocą
ProfileUserInfopodstawowego konta Chrome, lub pusty obiektProfileUserInfo, jeśli konto z podanymdetailsnie 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
-
szczegóły
Opcje procesu WebAuth.
Zwroty
-
Promise<string | undefined>
Chrome 106 lub nowsza browser.* od Chrome 148Zwraca 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
-
szczegóły
Informacje o tokenie.
Zwroty
-
thought Promise<void>
Chrome 106 lub nowsza browser.* od Chrome 148Zwraca 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
callbackwygląda tak:(account: AccountInfo, signedIn: boolean) => void
-
konto
-
signedIn
wartość logiczna
-