Opis
Użyj interfejsu chrome.identity
API, aby uzyskać tokeny dostępu OAuth2.
Uprawnienia
identity
Typy
AccountInfo
Właściwości
-
id
string,
Unikalny identyfikator konta. Ten identyfikator nie zmienia się przez cały okres istnienia konta.
AccountStatus
Typ wyliczeniowy
"SYNC"
Określa, że synchronizacja jest włączona dla konta podstawowego.
„ANY”
Określa istnienie konta podstawowego, jeśli istnieje.
GetAuthTokenResult
Właściwości
-
grantedScopes
string[] opcjonalny
Lista zakresów OAuth2 przyznanych rozszerzeniu.
-
token
ciąg znaków opcjonalny
Określony token powiązany z żądaniem.
InvalidTokenDetails
Właściwości
-
token
string,
Określony token, który powinien zostać usunięty z pamięci podręcznej.
ProfileDetails
Właściwości
-
accountStatus
AccountStatus – opcjonalny
Stan konta głównego zalogowanego w profilu, którego wartość
ProfileUserInfo
należy zwrócić. Domyślnie stan konta toSYNC
.
ProfileUserInfo
Właściwości
-
e-mail
string,
Adres e-mail powiązany z kontem użytkownika zalogowanym w bieżącym profilu. Puste, jeśli użytkownik nie jest zalogowany lub nie określono uprawnienia
identity.email
w pliku manifestu. -
id
string,
Unikalny identyfikator konta. Ten identyfikator nie zmienia się przez cały okres istnienia konta. Puste, jeśli użytkownik nie jest zalogowany lub (w wersji M41 i nowszych) nie określono uprawnienia
identity.email
w pliku manifestu.
TokenDetails
Właściwości
-
konto
AccountInfo opcjonalnie
Identyfikator konta, którego token powinien zostać zwrócony. Jeśli go nie podasz, 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 wersjeFlaga
enableGranularPermissions
umożliwia rozszerzeniom akceptację na ekranie zgody szczegółowych uprawnień, na którym żądane 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 interakcji to
true
, w razie potrzebygetAuthToken
wyświetli użytkownikowi komunikat. Jeśli flaga tofalse
lub zostanie pominięta,getAuthToken
zwróci błąd za każdym razem, gdy będzie wymagane podpowiedź. -
zakresy
string[] opcjonalny
Lista zakresów OAuth2, o które możesz poprosić.
Gdy pole
scopes
jest obecne, zastępuje ono listę zakresów określonych w pliku manifest.json.
WebAuthFlowDetails
Właściwości
-
abortOnLoadForNonInteractive
wartość logiczna opcjonalna
Chrome 113 i nowsze wersjeOkreśla, czy po wczytaniu strony zakończyć
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 ustawiona jest wartośćfalse
, przepływ zakończy się dopiero po przejściutimeoutMsForNonInteractive
. 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 uruchamiać przepływ uwierzytelniania w trybie interaktywnym.
Niektóre procesy uwierzytelniania mogą natychmiast przekierowywać do adresu URL wyniku, dlatego
launchWebAuthFlow
ukrywa swój widok internetowy do czasu, gdy pierwsza nawigacja przekieruje użytkownika na końcowy adres URL lub zakończy się wczytywanie strony, która ma być wyświetlana.Jeśli flaga
interactive
ma wartośćtrue
, okno wyświetli się po zakończeniu wczytywania strony. Jeśli flaga tofalse
lub zostanie pominięta,launchWebAuthFlow
zwróci błąd, gdy początkowa nawigacja nie dokończy procesu.W przypadku przepływów, które używają JavaScriptu do przekierowywania, atrybut
abortOnLoadForNonInteractive
może mieć wartośćfalse
w połączeniu z ustawieniemtimeoutMsForNonInteractive
, aby umożliwić stronie wykonanie dowolnych przekierowań. -
timeoutMsForNonInteractive
Liczba opcjonalnie
Chrome 113 i nowsze wersjeMaksymalny czas działania systemu
launchWebAuthFlow
(w milisekundach) w trybie nieinteraktywnym. Ma zastosowanie tylko wtedy, gdyinteractive
ma wartośćfalse
. -
URL
string,
Adres URL, który inicjuje proces uwierzytelniania.
Metody
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
)
Resetuje stan interfejsu Identity API:
- Usuwa wszystkie tokeny dostępu OAuth2 z pamięci podręcznej tokenów
- Usuwa ustawienia konta użytkownika
- Cofanie autoryzacji użytkownika we wszystkich procesach uwierzytelniania
Parametry
-
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 106 i nowsze wersjeObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
)
Pobiera listę obiektów AccountInfo opisujących konta znajdujące się w profilu.
Funkcja getAccounts
jest obsługiwana tylko w wersji deweloperskiej.
Parametry
-
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(accounts: AccountInfo[]) => void
-
konta
-
Zwroty
-
Promise<AccountInfo[]>
Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
)
Pobiera token dostępu OAuth2, korzystając z identyfikatora klienta i zakresów określonych w sekcji oauth2
w pliku manifest.json.
Identity API zapisuje tokeny dostępu w pamięci podręcznej, więc można wywoływać getAuthToken
nieinteraktywnie za każdym razem, gdy potrzebny jest token. Pamięć podręczna tokenów automatycznie obsługuje wygaśnięcie.
Ze względu na wygodę użytkowników ważne jest, aby żądania tokenów były inicjowane przez interfejs użytkownika w aplikacji i wyjaśniać, 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 będą zalogowani (bez kontekstu). W szczególności nie używaj getAuthToken
w sposób interaktywny przy pierwszym uruchomieniu aplikacji.
Uwaga: w przypadku wywołania zwrotnego zamiast zwrócenia obiektu ta funkcja zwróci 2 właściwości jako osobne argumenty przekazywane do wywołania zwrotnego.
Parametry
-
szczegóły
Opcjonalny TokenDetails
Opcje tokena.
-
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(result: GetAuthTokenResult) => void
-
wynikChrome 105 i nowsze wersje
-
Zwroty
-
Promise<GetAuthTokenResult>
Chrome 105 i nowsze wersjeObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
)
Pobiera adres e-mail i zaciemniony identyfikator Gaia użytkownika zalogowanego w profilu.
Wymaga uprawnień identity.email
do pliku manifestu. W przeciwnym razie zwraca pusty wynik.
Ten interfejs API różni się od Identity.getAccounts pod dwoma względami. Zwrócone informacje są dostępne offline i mają zastosowanie tylko do głównego konta profilu.
Parametry
-
szczegóły
ProfileDetails – opcjonalnie
Chrome 84 i nowsze wersjeOpcje profilu.
-
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(userInfo: ProfileUserInfo) => void
-
userInfo
-
Zwroty
-
Promise<ProfileUserInfo>
Chrome 106 i nowsze wersjeObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
)
Generuje URL przekierowania, który będzie używany w elemencie launchWebAuthFlow
.
Wygenerowane adresy URL pasują do wzorca https://<app-id>.chromiumapp.org/*
.
Parametry
-
ścieżka
ciąg znaków opcjonalny
Ścieżka dołączona na końcu wygenerowanego adresu URL.
Zwroty
-
string,
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
callback?: function,
)
Rozpoczyna proces uwierzytelniania pod określonym adresem URL.
Ta metoda umożliwia przepływy uwierzytelniania z dostawcami tożsamości innych niż Google przez uruchomienie widoku internetowego i przeniesienie go do pierwszego adresu URL w procesie uwierzytelniania dostawcy. Gdy dostawca wykona przekierowanie na adres URL zgodny ze wzorcem https://<app-id>.chromiumapp.org/*
, okno zamknie się, a do funkcji callback
zostanie przekazany końcowy adres URL.
Ze względu na wygodę użytkowników ważne jest, aby interaktywne przepływy uwierzytelniania inicjowały interfejs użytkownika w aplikacji i wyjaśniał, 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 procesu uwierzytelniania WebAuth.
-
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:(responseUrl?: string) => void
-
responseUrl
ciąg znaków opcjonalny
-
Zwroty
-
Promise<string | undefined>
Chrome 106 i nowsze wersjeObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
)
Usuwa token dostępu OAuth2 z pamięci podręcznej tokenów interfejsu Identity API.
W przypadku wykrycia nieprawidłowego tokena dostępu należy go przekazać do usunięcia z pamięci podręcznejdAuthToken w celu usunięcia 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 opcjonalnie
Parametr
callback
wygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 106 i nowsze wersjeObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. 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
-
konto
-
signedIn
boolean
-