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

W tym artykule opisujemy interfejs Google 3P Authorization JavaScript Library API, którego możesz używać do wczytywania kodów autoryzacji lub tokenów dostępu od Google.

Metoda: google.accounts.oauth2.initCodeClient

Metoda initCodeClient inicjuje i zwraca klienta kodu z konfiguracjami w parametrze.

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

Typ danych: CodeClientConfig

W tabeli poniżej znajdziesz listę 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. Lista rozdzielonych spacjami zakresów określających zasoby, do których aplikacja może uzyskiwać dostęp w imieniu użytkownika. Wartości te mają wpływ na ekran zgody wyświetlany przez Google użytkownikowi.
include_granted_scopes Opcjonalnie; domyślna wartość: true. Umożliwia aplikacjom korzystanie z przyrostowej autoryzacji w celu zażądania dostępu do dodatkowych zakresów w kontekście. Jeśli ustawisz wartość tego parametru na false i żądanie autoryzacji zostanie przyznane, nowy token dostępu będzie obejmował tylko te zakresy, do których dostęp scope żądał w tym CodeClientConfig.
redirect_uri Wymagane do przekierowania UX. Określa, dokąd serwer interfejsu API przekierowuje użytkownika po zakończeniu procesu autoryzacji. Wartość musi dokładnie odpowiadać jednemu z autoryzowanych identyfikatorów URI przekierowania dla klienta OAuth 2.0, które zostały skonfigurowane w konsoli API i muszą być zgodne z naszymi regułami weryfikacji identyfikatora URI przekierowania. Właściwość będzie ignorowana przez wyskakujące okienko UX.
callback Wymagane do działania w wyskakującym okienku. Funkcja JavaScript, która obsługuje zwrócony kod. Właściwość będzie ignorowana przez przekierowanie UX.
state Opcjonalnie. Zalecane w przypadku przekierowania UX. Określa dowolną wartość ciągu znaków, której aplikacja używa do zachowania stanu między żądaniem autoryzacji a odpowiedzią serwera autoryzacji.
enable_granular_consent Opcjonalnie; domyślna wartość: true. Jeśli ma wartość false, bardziej szczegółowe uprawnienia do konta Google zostaną wyłączone w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 rokiem. Jeśli ustawisz zarówno wartość enable_granular_consent, jak i enable_serial_consent, obowiązywać będzie tylko wartość enable_granular_consent, a wartość enable_serial_consent będzie ignorowana.

Nie ma wpływu na nowsze identyfikatory klienta OAuth, ponieważ zawsze są dla nich włączone bardziej szczegółowe uprawnienia.
enable_serial_consent Wycofano. Użyj interfejsu enable_granular_consent. Działa to tak samo jak w przypadku zasady enable_granular_consent. Istniejące aplikacje korzystające z enable_serial_consent mogą nadal to robić, ale zachęcamy do zaktualizowania kodu, tak aby 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 przekazać 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 aplikacja wie, do której domeny Workspace należy użytkownik, użyj tej funkcji, aby dać Google wskazówkę. Jeśli operacja się uda, konta użytkowników będą ograniczone do podanej domeny lub wstępnie wybrane. Więcej informacji znajdziesz w polu hd w dokumentacji OpenID Connect.
ux_mode Opcjonalnie. Tryb UX używany w procesie autoryzacji. Domyślnie proces uzyskiwania zgody zostanie otwarty w wyskakującym okienku. Prawidłowe wartości to popup i redirect.
select_account Wartość domyślna to „false”. Wartość logiczna zachęcająca użytkownika do wybrania konta.
error_callback Opcjonalnie. Funkcja JavaScript, która obsługuje niektóre błędy niezwiązane z OAuth, na przykład nie udało się otworzyć wyskakującego okienka lub została zamknięta przed zwróceniem odpowiedzi OAuth.

Szczegółowe informacje są podane w polu „type” parametru wejściowego.
  • popup_failed_to_open Nie udało się otworzyć wyskakującego okienka.
  • popup_closed Wyskakujące okienko zostanie zamknięte przed zwróceniem odpowiedzi OAuth.
  • nieznany obiekt zastępczy innych błędów.

Typ danych: CodeClient

Klasa ma tylko jeden publiczny kod metody requestCode, który uruchamia proces UX kodu OAuth 2.0.

interface CodeClient {
  requestCode(): void;
}

Typ danych: CodeResponse

Obiekt JavaScript CodeResponse zostanie przekazany do metody callback w wyskakującym okienku. W interfejsie użytkownika przekierowania parametr CodeResponse jest przekazywany jako parametry adresu URL.

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

Właściwości
code Kod autoryzacji udanej odpowiedzi tokena.
scope Lista rozdzielonych spacjami zakresów, które zostały zatwierdzone 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 programiście zrozumienie zgłoszonego błędu.
error_uri Identyfikator URI identyfikujący czytelną dla człowieka stronę internetową z informacjami o błędzie, używany do przekazania deweloperowi klienta dodatkowych informacji o błędzie.

Metoda: google.accounts.oauth2.initTokenClient

Metoda initTokenClient inicjuje i zwraca klienta tokena z konfiguracjami parametru.

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

Typ danych: TokenClientConfig

W tabeli poniżej znajdziesz listę 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. Lista rozdzielonych spacjami zakresów określających zasoby, do których aplikacja może uzyskiwać dostęp w imieniu użytkownika. Wartości te mają wpływ na ekran zgody wyświetlany przez Google użytkownikowi.
include_granted_scopes Opcjonalnie; domyślna wartość: true. Umożliwia aplikacjom korzystanie z przyrostowej autoryzacji w celu zażądania dostępu do dodatkowych zakresów w kontekście. Jeśli ustawisz wartość tego parametru na false i żądanie autoryzacji zostanie przyznane, nowy token dostępu będzie obejmował tylko te zakresy, do których dostęp scope żądał w tym TokenClientConfig.
prompt Opcjonalnie: domyślnie 'select_account'. Lista rozdzielanych spacjami promptów dla użytkownika (z uwzględnieniem wielkości liter). Możliwe wartości:
  • pusty ciąg znaków. Użytkownik zostanie poproszony tylko wtedy, gdy aplikacja po raz pierwszy poprosi o dostęp. Nie można podawać innych wartości.
  • 'none' (brak) – nie wyświetlaj żadnych ekranów uwierzytelniania ani zgody. Nie może zawierać innych wartości.
  • 'consent' – wyświetlaj użytkownikowi prośbę o zgodę na wykorzystanie danych.
  • 'select_account' – poproś użytkownika o wybranie konta;
enable_granular_consent Opcjonalnie; domyślna wartość: true. Jeśli ma wartość false, bardziej szczegółowe uprawnienia do konta Google zostaną wyłączone w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 rokiem. Jeśli ustawisz zarówno wartość enable_granular_consent, jak i enable_serial_consent, obowiązywać będzie tylko wartość enable_granular_consent, a wartość enable_serial_consent będzie ignorowana.

Nie ma wpływu na nowsze identyfikatory klienta OAuth, ponieważ zawsze są dla nich włączone bardziej szczegółowe uprawnienia.
enable_serial_consent Wycofano. Użyj interfejsu enable_granular_consent. Działa to tak samo jak w przypadku zasady enable_granular_consent. Istniejące aplikacje korzystające z enable_serial_consent mogą nadal to robić, ale zachęcamy do zaktualizowania kodu, tak aby 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 przekazać 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 aplikacja wie, do której domeny Workspace należy użytkownik, użyj tej funkcji, aby dać Google wskazówkę. Jeśli operacja się uda, konta użytkowników będą ograniczone do podanej domeny lub wstępnie wybrane. Więcej informacji znajdziesz w polu hd w dokumentacji OpenID Connect.
state Opcjonalnie. Niezalecane. Określa dowolną wartość ciągu znaków, której aplikacja używa do zachowania stanu między żądaniem autoryzacji a odpowiedzią serwera autoryzacji.
error_callback Opcjonalnie. Funkcja JavaScript, która obsługuje niektóre błędy niezwiązane z OAuth, na przykład nie udało się otworzyć wyskakującego okienka lub została zamknięta przed zwróceniem odpowiedzi OAuth.

Szczegółowe informacje są podane w polu „type” parametru wejściowego.
  • popup_failed_to_open Nie udało się otworzyć wyskakującego okienka.
  • popup_closed Wyskakujące okienko zostanie zamknięte przed zwróceniem odpowiedzi OAuth.
  • nieznany obiekt zastępczy innych błędów.

Typ danych: TokenClient

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

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

Typ danych: OverridableTokenClientConfig

W tabeli poniżej znajdziesz listę właściwości typu danych OverridableTokenClientConfig.

Właściwości
scope Opcjonalnie. Lista rozdzielonych spacjami zakresów określających zasoby, do których aplikacja może uzyskiwać dostęp w imieniu użytkownika. Wartości te informują o ekranie zgody, który Google wyświetla użytkownikowi.
include_granted_scopes Opcjonalnie; domyślna wartość: true. Umożliwia aplikacjom korzystanie z przyrostowej autoryzacji w celu zażądania dostępu do dodatkowych zakresów w kontekście. Jeśli ustawisz wartość tego parametru na false i żądanie autoryzacji zostanie przyznane, nowy token dostępu będzie obejmował tylko te zakresy, do których dostęp scope żądał w tym OverridableTokenClientConfig.
prompt Opcjonalnie. Lista rozdzielanych spacjami promptów dla użytkownika (z uwzględnieniem wielkości liter).
enable_granular_consent Opcjonalnie; domyślna wartość: true. Jeśli ustawisz wartość false, bardziej szczegółowe uprawnienia konta Google zostaną wyłączone w przypadku identyfikatorów klienta OAuth utworzonych przed 2019 rokiem.Jeśli ustawisz zarówno wartość enable_granular_consent, jak i enable_serial_consent, obowiązywać będzie tylko wartość enable_granular_consent, a wartość enable_serial_consent będzie ignorowana.

Nie ma wpływu na nowsze identyfikatory klienta OAuth, ponieważ zawsze są dla nich włączone bardziej szczegółowe uprawnienia.
enable_serial_consent Wycofano. Użyj interfejsu enable_granular_consent. Działa to tak samo jak w przypadku zasady enable_granular_consent. Istniejące aplikacje korzystające z enable_serial_consent mogą nadal to robić, ale zachęcamy do zaktualizowania kodu, tak aby 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 przekazać 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 znaków, której aplikacja używa do zachowania stanu między żądaniem autoryzacji a odpowiedzią serwera autoryzacji.

Typ danych: TokenResponse

Obiekt JavaScript TokenResponse zostanie przekazany do metody wywołania zwrotnego w wyskakującym okienku.

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

Właściwości
access_token Token dostępu udanej odpowiedzi tokena.
expires_in Czas życia 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 wystawionego tokena.
scope Lista rozdzielonych spacjami zakresów, które zostały zatwierdzone 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 programiście zrozumienie występującego błędu.
error_uri Identyfikator URI identyfikujący czytelną dla człowieka stronę internetową z informacjami o błędzie, używany 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. Obiekt TokenResponse.
firstScope ciąg znaków Wymagane. Zakres do sprawdzenia.
restScopes ciąg znaków[] Opcjonalnie. Inne zakresy do sprawdzenia.
Akcje powrotne
boolean Wartość to „prawda”, jeśli przyznano wszystkie zakresy.

Metoda: google.accounts.oauth2.hasGrantedAnyScope

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

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

Metoda: google.accounts.oauth2.revoke

Metoda revoke anuluje 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. RevocationResponse.

Typ danych: RevocationResponse

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

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

Właściwości
successful Wartość logiczna. Włączono true, a w przypadku niepowodzenia: false.
error Ciąg tekstowy. Nieokreślony w przypadku sukcesu. Pojedynczy kod błędu ASCII. Obejmuje to między innymi standardowe kody błędów OAuth 2.0. Typowe błędy w przypadku metody revoke:
  • invalid_token – token wygasł lub został unieważniony przed wywołaniem metody revoke. W większości przypadków możesz uznać uprawnienie powiązane z accessToken zostało unieważnione.
  • invalid_request – nie można odwoływać tokena. Sprawdź, czy accessToken to prawidłowe dane uwierzytelniające Google OAuth 2.0.
error_description Ciąg tekstowy. Nieokreślony w przypadku sukcesu. Zrozumiały dla człowieka tekst ASCII zawiera dodatkowe informacje o właściwości error. Dzięki temu deweloperzy mogą dowiedzieć się więcej o tym, na czym wystąpił błąd. Ciąg error_description jest dostępny tylko w języku angielskim. W przypadku typowych błędów wymienionych w zasadzie error użyj odpowiedniego atrybutu error_description:
  • invalid_token – token wygasł lub został unieważniony.
  • invalid_request – nie można odwoływać tokena.