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
Typ wyliczeniowy
„SYNC”
Określa, że synchronizacja jest włączona na koncie głównym.
„ANY”
Określa, czy istnieje konto podstawowe.
GetAuthTokenResult
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
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 kontaSYNC
.
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 nowszejFlaga
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, funkcjagetAuthToken
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 nowszaOkreś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 czasutimeoutMsForNonInteractive
. 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, funkcjalaunchWebAuthFlow
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ć nafalse
w połączeniu z ustawieniem parametrutimeoutMsForNonInteractive
, aby umożliwić stronie wykonanie przekierowań. -
timeoutMsForNonInteractive
number opcjonalny
Chrome 113 lub nowszaMaksymalny łączny czas (w milisekundach), przez jaki
launchWebAuthFlow
może działać w trybie nieinteraktywnym. Działa tylko wtedy, gdy zasadainteractive
ma wartośćfalse
. -
URL
ciąg znaków
Adres URL, który rozpoczyna proces autoryzacji.
Metody
clearAllCachedAuthTokens()
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()
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
-
Promise<AccountInfo[]>
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
-
szczegóły
TokenDetails opcjonalny
Opcje tokena.
Zwroty
-
Promise<GetAuthTokenResult>
Chrome 105 lub nowsza
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 nowszaOpcje profilu.
Zwroty
-
Promise<ProfileUserInfo>
Chrome 106 lub nowsza
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
-
szczegóły
Opcje procedury WebAuth.
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
-
szczegóły
Informacje o tokenie.
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
-
konto
-
signedIn
Wartość logiczna
-