Biblioteka JavaScript autoryzacji Google dla witryn 3P – dokumentacja interfejsu API

W tym artykule opisaliśmy interfejs Google 3P Authorization JavaScript Library API. który może służyć do wczytywania kodów autoryzacji lub tokenów dostępu od Google.

Metoda: google.accounts.oauth2.initCodeClient

Metoda initCodeClient inicjuje i zwraca klienta kodu, ze znakiem konfiguracji w parametrze.

google.accounts.oauth2.initCodeClient(config: CodeClientConfig)

Typ danych: CodeClientConfig

W tabeli poniżej znajdziesz właściwości typu danych CodeClientConfig.

Właściwości
client_id Wymagane. Identyfikator klienta aplikacji. Tę wartość znajdziesz w konsoli interfejsów API.
scope Wymagane. Rozdzielona spacjami lista zakresów identyfikujących zasoby, do których aplikacja mogła uzyskiwać dostęp w imieniu użytkownika. Wartości te informują o ekranie zgody, który Google wyświetla użytkownikowi.
include_granted_scopes Opcjonalna (domyślnie true). Umożliwia aplikacjom korzystanie z przyrostu wartości mogą prosić o dostęp do dodatkowych zakresów w kontekście. Jeśli ustawisz wartość tego parametru na false i żądanie autoryzacji zostało wysłane, nowy token dostępu będzie obejmować tylko te zakresy, do których zażądano dostępu scope w tym okresie: CodeClientConfig.
redirect_uri Wymagane na potrzeby przekierowania UX. Określa, dokąd serwer interfejsu API przekierowuje użytkownika po zakończeniu procesu autoryzacji przez użytkownika. Wartość musi dokładnie odpowiadać jednemu z autoryzowanych identyfikatorów URI przekierowania klienta OAuth 2.0, które zostały skonfigurowane w konsoli API. Musi być też zgodna z regułami weryfikacji identyfikatora URI przekierowania. Właściwość zostanie zignorowana przez wyskakujące okienko UX.
callback Wymagane dla UX wyskakującego okienka. Funkcja JavaScript, która obsługuje zwróconą odpowiedź kodu. Właściwość zostanie zignorowana przez UX przekierowania.
state Opcjonalnie: Zalecane w przypadku przekierowania UX. Określa dowolną wartość ciągu, której aplikacja używa do utrzymania stanu między żądaniem autoryzacji a odpowiedzią serwera autoryzacji.
enable_granular_consent Opcjonalna (domyślnie true). Jeśli ustawisz wartość false, będziesz mieć bardziej szczegółowe uprawnienia konta Google. został wyłączony w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 rokiem. Jeśli skonfigurowane są zarówno enable_granular_consent, jak i enable_serial_consent, tylko enable_granular_consent zostałaby zastosowana, a wartość enable_serial_consent zostanie zignorowana.

Nie ma wpływu na nowsze identyfikatory klienta OAuth, ponieważ zawsze włączone są dla nich bardziej szczegółowe uprawnienia.
enable_serial_consent Wycofano. Zamiast niego użyj parametru enable_granular_consent. Ten ma taki sam efekt jak enable_granular_consent. Istniejące aplikacje użytkownicy korzystający z usługi enable_serial_consent mogą nadal to robić, ale są warto zaktualizować kod tak, aby używać w nim elementu enable_granular_consent przy następnej aktualizacji aplikacji.
login_hint Opcjonalnie: Jeśli aplikacja wie, który użytkownik powinien autoryzować żądanie, może użyć tej właściwości, aby podać Google wskazówkę dotyczącą logowania. Jeśli operacja się uda, wybór konta zostanie pominięty. Wartość pola sub adresu e-mail lub tokena identyfikatora użytkownika docelowego. Więcej informacji znajdziesz w polu login_hint w dokumentacji OpenID Connect.
hd Opcjonalnie: Jeśli Twoja aplikacja wie, do której domeny Workspace należy użytkownik, użyj tego parametru, aby podać Google wskazówkę. Jeśli proces się powiedzie, konta użytkowników będą ograniczone do podanej domeny lub wstępnie wybrane dla tej domeny. Więcej informacji znajdziesz w polu hd w dokumentacji OpenID Connect.
ux_mode Opcjonalnie: Tryb UX, który ma być używany w procesie autoryzacji. Domyślnie wyświetli się wyskakujące okienko z prośbą o zgodę na wykorzystanie danych. Prawidłowe wartości to popup i redirect.
select_account Opcjonalna, domyślnie przyjmuje wartość 'false'. Wartość logiczna zachęcająca użytkownika do wybrania konta.
error_callback Opcjonalnie: Funkcja JavaScript, która obsługuje niektóre błędy inne niż OAuth, takie jak nie udało się otworzyć wyskakującego okienka; lub zamknięta, zanim odpowiedź OAuth zostanie .

Pole „type” parametru wejściowego zawiera szczegółowy powód.
  • popup_failed_to_open Nie udało się otworzyć wyskakującego okienka.
  • popup_closed Wyskakujące okienko jest zamykane przed OAuth .
  • nieznany Obiekt zastępczy innych błędów.

Typ danych: CodeClient

Klasa ma tylko jedną publiczną metodę requestCode, która uruchamia protokół OAuth 2.0 Proces UX kodu.

interface CodeClient {
  requestCode(): void;
}

Typ danych: CodeResponse

Obiekt JavaScript CodeResponse zostanie przekazany do metody callback w UX. W interfejsie przekierowania parametr CodeResponse zostanie przekazany jako adres URL .

W tabeli poniżej znajdziesz właściwości typu danych CodeResponse.

Właściwości
code Kod autoryzacji udanej odpowiedzi tokena.
scope Rozdzielona spacjami lista zakresów zatwierdzonych przez użytkownika.
state Wartość ciągu znaków, której aplikacja używa do utrzymywania stanu między żądaniem autoryzacji a odpowiedzią.
error Pojedynczy kod błędu ASCII.
error_description Zrozumiały dla człowieka tekst ASCII zawierający dodatkowe informacje ułatwiające deweloperowi klienta zrozumienie błędu.
error_uri Identyfikator URI określający czytelną dla człowieka stronę internetową z informacjami o błędzie, który służy do przekazania deweloperowi klienta dodatkowych informacji o błędzie.

Metoda: google.accounts.oauth2.initTokenClient

Metoda initTokenClient inicjuje i zwraca klienta tokena z konfiguracji w parametrze.

google.accounts.oauth2.initTokenClient(config: TokenClientConfig)

Typ danych: TokenClientConfig

W tabeli poniżej znajdziesz właściwości typu danych TokenClientConfig.

Właściwości
client_id Wymagane. Identyfikator klienta aplikacji. Tę wartość znajdziesz w konsoli interfejsów API.
callback Wymagane. Funkcja JavaScript, która obsługuje zwróconą odpowiedź tokena.
scope Wymagane. Rozdzielona spacjami lista zakresów identyfikujących zasoby, do których aplikacja mogła uzyskiwać dostęp w imieniu użytkownika. Wartości te informują o ekranie zgody, który Google wyświetla użytkownikowi.
include_granted_scopes Opcjonalna (domyślnie true). Umożliwia aplikacjom korzystanie z przyrostu wartości mogą prosić o dostęp do dodatkowych zakresów w kontekście. Jeśli ustawisz wartość tego parametru na false i żądanie autoryzacji zostało wysłane, nowy token dostępu będzie obejmować tylko te zakresy, do których zażądano dostępu scope w tym okresie: TokenClientConfig.
prompt Opcjonalna (domyślnie 'select_account'). Plik rozdzielany spacjami lista promptów, które mają zostać zaprezentowane użytkownikowi (z uwzględnieniem wielkości liter). Możliwe wartości to:
  • pusty ciąg znaków: użytkownik zostanie poproszony tylko przy pierwszej prośbie o dostęp do aplikacji. Nie można go określić za pomocą innych wartości.
  • „none” (brak) nie powoduje wyświetlania żadnych ekranów uwierzytelniania ani zgody użytkownika. Nie można go określać za pomocą innych wartości.
  • 'consent' – wyświetlaj monit o zgodę na wykorzystanie danych;
  • 'select_account' Służy do wyświetlania użytkownikowi prośby o wybranie konta.
enable_granular_consent Opcjonalna (domyślnie true). Jeśli ustawisz wartość false, będziesz mieć bardziej szczegółowe uprawnienia konta Google. został wyłączony w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 rokiem. Jeśli skonfigurowane są zarówno enable_granular_consent, jak i enable_serial_consent, tylko enable_granular_consent zostałaby zastosowana, a wartość enable_serial_consent zostanie zignorowana.

Nie ma wpływu na nowsze identyfikatory klienta OAuth, ponieważ zawsze włączone są dla nich bardziej szczegółowe uprawnienia.
enable_serial_consent Wycofano. Zamiast niego użyj parametru enable_granular_consent. Ten ma taki sam efekt jak enable_granular_consent. Istniejące aplikacje użytkownicy korzystający z usługi enable_serial_consent mogą nadal to robić, ale są warto zaktualizować kod tak, aby używać w nim elementu enable_granular_consent przy następnej aktualizacji aplikacji.
login_hint Opcjonalnie: Jeśli aplikacja wie, który użytkownik powinien autoryzować żądanie, może użyć tej właściwości, aby podać Google wskazówkę dotyczącą logowania. Jeśli operacja się uda, wybór konta zostanie pominięty. Wartość pola sub adresu e-mail lub tokena identyfikatora użytkownika docelowego. Więcej informacji znajdziesz w polu login_hint w dokumentacji OpenID Connect.
hd Opcjonalnie: Jeśli Twoja aplikacja wie, do której domeny Workspace należy użytkownik, użyj tego parametru, aby podać Google wskazówkę. Jeśli proces się powiedzie, konta użytkowników będą ograniczone do podanej domeny lub wstępnie wybrane dla tej domeny. Więcej informacji znajdziesz w polu hd w dokumentacji OpenID Connect.
state Opcjonalnie: Niezalecane. Określa dowolną wartość ciągu, której aplikacja używa do utrzymania stanu między żądaniem autoryzacji a odpowiedzią serwera autoryzacji.
error_callback Opcjonalnie: Funkcja JavaScript, która obsługuje niektóre błędy inne niż OAuth, takie jak nie udało się otworzyć wyskakującego okienka; lub zamknięta, zanim odpowiedź OAuth zostanie .

Pole „type” parametru wejściowego zawiera szczegółowy powód.
  • popup_failed_to_open Nie udało się otworzyć wyskakującego okienka.
  • popup_closed Wyskakujące okienko jest zamykane przed OAuth .
  • nieznany Obiekt zastępczy innych błędów.

Typ danych: TokenClient

Klasa ma tylko jedną metodę publiczną requestAccessToken, która rozpoczyna Proces UX tokena OAuth 2.0.

interface TokenClient {
  requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
Argumenty
overrideConfig OverridableTokenClientConfig Opcjonalnie: Konfiguracje, które mają zostać zastąpione w tej metodzie.

Typ danych: OverridableTokenClientConfig

W poniższej tabeli podano właściwości obiektu OverridableTokenClientConfig typu danych.

Właściwości
scope Opcjonalnie: Rozdzielona spacjami lista zakresów identyfikujących zasoby do których aplikacja może uzyskać dostęp w imieniu użytkownika. Wartości te przekazują informacje na ekranie zgody wyświetlanym użytkownikowi przez Google.
include_granted_scopes Opcjonalna (domyślnie true). Umożliwia aplikacjom korzystanie z przyrostu wartości mogą prosić o dostęp do dodatkowych zakresów w kontekście. Jeśli ustawisz wartość tego parametru na false i żądanie autoryzacji zostało wysłane, nowy token dostępu będzie obejmować tylko te zakresy, do których zażądano dostępu scope w tym okresie: OverridableTokenClientConfig.
prompt Opcjonalnie: Rozdzielona spacjami lista promptów, które mają zostać zaprezentowane użytkownikowi. Wielkość liter ma znaczenie.
enable_granular_consent Opcjonalna (domyślnie true). Jeśli ustawisz wartość false, będziesz mieć bardziej szczegółowe uprawnienia konta Google. zostanie wyłączone w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 rokiem.Jeśli ustawiono zarówno enable_granular_consent, jak i enable_serial_consent, tylko enable_granular_consent zacznie obowiązywać, a wartość enable_serial_consent będzie ignorowana.

Nie ma wpływu na nowsze identyfikatory klienta OAuth, ponieważ zawsze włączone są dla nich bardziej szczegółowe uprawnienia.
enable_serial_consent Wycofano. Zamiast niego użyj parametru enable_granular_consent. Ten ma taki sam efekt jak enable_granular_consent. Istniejące aplikacje użytkownicy korzystający z usługi enable_serial_consent mogą nadal to robić, ale są warto zaktualizować kod tak, aby używać w nim elementu enable_granular_consent przy następnej aktualizacji aplikacji.
login_hint Opcjonalnie: Jeśli aplikacja wie, który użytkownik powinien autoryzować żądanie, może użyć tej właściwości, aby podać Google wskazówkę dotyczącą logowania. Jeśli operacja się uda, wybór konta zostanie pominięty. Wartość pola sub adresu e-mail lub tokena identyfikatora użytkownika docelowego. Więcej informacji znajdziesz w polu login_hint w dokumentacji OpenID Connect.
state Opcjonalnie: Niezalecane. Określa dowolną wartość ciągu, której aplikacja używa do utrzymania stanu między żądaniem autoryzacji a odpowiedzią serwera autoryzacji.

Typ danych: TokenResponse

Obiekt JavaScript TokenResponse zostanie przekazany do metody wywołania zwrotnego w UX.

W tabeli poniżej znajdziesz właściwości typu danych TokenResponse.

Właściwości
access_token Token dostępu dla pomyślnej odpowiedzi tokena.
expires_in Czas ważności tokena dostępu (w sekundach).
hd Domena hostowana, do której należy zalogowany użytkownik.
prompt Wartość promptu, która została użyta z możliwej listy wartości określonej przez TokenClientConfig lub OverridableTokenClientConfig.
token_type Typ wydanego tokena.
scope Rozdzielona spacjami lista zakresów zatwierdzonych przez użytkownika.
state Wartość ciągu znaków, której aplikacja używa do utrzymywania stanu między żądaniem autoryzacji a odpowiedzią.
error Pojedynczy kod błędu ASCII.
error_description Zrozumiały dla człowieka tekst ASCII zawierający dodatkowe informacje ułatwiające deweloperowi klienta zrozumienie, który błąd wystąpił.
error_uri Identyfikator URI określający czytelną dla człowieka stronę internetową z informacjami o błędzie, który służy do przekazania deweloperowi klienta dodatkowych informacji o błędzie.

Metoda: google.accounts.oauth2.hasGrantedAllScopes

Sprawdza, czy użytkownik przyznał wszystkie określone zakresy.

google.accounts.oauth2.hasGrantedAllScopes(
                                            tokenResponse: TokenResponse,
                                            firstScope: string, ...restScopes: string[]
                                          ): boolean;
Argumenty
tokenResponse TokenResponse Wymagane. TokenResponse obiektu.
firstScope ciąg znaków Wymagane. Zakres do sprawdzenia.
restScopes ciąg znaków[] Opcjonalnie: Inne zakresy do sprawdzenia.
Zwroty
wartość logiczna Prawda, jeśli przyznano wszystkie zakresy.

Metoda: google.accounts.oauth2.hasGrantedAnyScope

Sprawdza, czy użytkownik przyznał jeden z podanych zakresów.

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
Argumenty
tokenResponse TokenResponse Wymagane. TokenResponse obiektu.
firstScope ciąg znaków Wymagane. Zakres do sprawdzenia.
restScopes ciąg znaków[] Opcjonalnie: Inne zakresy do sprawdzenia.
Zwroty
wartość logiczna Prawda, jeśli przyznano dowolny zakres.

Metoda: google.accounts.oauth2.revoke

Metoda revoke unieważnia wszystkie zakresy, które użytkownik przyznał aplikacji. Do unieważnienia uprawnień wymagany jest prawidłowy token dostępu.

google.accounts.oauth2.revoke(accessToken: string, done: () => void): void;
Argumenty
accessToken ciąg znaków Wymagane. Prawidłowy token dostępu.
callback funkcja Opcjonalnie: Moduł RevocationResponse.

Typ danych: RevocationResponse

Do metody wywołania zwrotnego zostanie przekazany obiekt JavaScript RevocationResponse.

W tabeli poniżej znajdziesz właściwości typu danych RevocationResponse.

Właściwości
successful Wartość logiczna. true – w przypadku niepowodzenia, false – niepowodzenie.
error Ciąg tekstowy. Nieokreślony sukces. Pojedynczy kod błędu ASCII. Obejmuje to m.in. standardową autoryzację OAuth 2.0 – kody błędów. Typowe błędy w przypadku metody revoke:
  • invalid_token – token już wygasł lub został unieważniony przed wywołaniem metody revoke. W większości przypadków można uznać uwierzytelnienie powiązane z dokument accessToken został unieważniony.
  • invalid_request – tokenu nie można unieważnić. Należy upewnić się, accessToken jest prawidłowym uwierzytelnianiem Google OAuth 2.0.
error_description Ciąg tekstowy. Nieokreślony sukces. Zrozumiały dla człowieka tekst ASCII zawiera dodatkowe informacje na temat error. Dzięki nim deweloperzy mogą dowiedzieć się więcej który wystąpił. Ciąg error_description jest dostępny tylko w języku angielskim. W przypadku typowych błędów wymienionych w zasadzie error odpowiednie zasady error_description:
  • invalid_token – token wygasł lub został unieważniony.
  • invalid_request – tokenu nie można unieważnić.