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
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
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
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 toSYNC
.
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 procesutimeoutMsForNonInteractive
. 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 ustawieniemtimeoutMsForNonInteractive
, 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, gdyinteractive
ma wartośćfalse
. -
URL
ciąg znaków
Adres URL, który inicjuje proces uwierzytelniania.
Metody
clearAllCachedAuthTokens()
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()
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
-
konta
-
Zwroty
-
Promise<AccountInfo[]>
Obietnice są obsługiwane tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
getAuthToken()
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
-
szczegóły
Opcjonalne TokenDetails
Opcje tokena.
-
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(result: GetAuthTokenResult) => void
-
wynikChrome w wersji 105 lub nowszej .
-
Zwroty
-
Promise<GetAuthTokenResult>
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()
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
-
szczegóły
ProfileDetails (opcjonalne)
Chrome 84 i nowsze .Opcje profilu.
-
wywołanie zwrotne
funkcja optional
Parametr
callback
wygląda tak:(userInfo: ProfileUserInfo) => void
-
userInfo
-
Zwroty
-
Promise<ProfileUserInfo>
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()
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()
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
-
konto
-
signedIn
wartość logiczna
-