Dokumentacja interfejsu Google Account Authorization JavaScript API

W tym artykule znajdziesz opis interfejsu Google Account Authorization JavaScript API, który służy do uzyskiwania od Google kodów autoryzacji lub tokenów dostępu.

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 właściwości typu danych CodeClientConfig.

Właściwości
client_id Wymagane. Identyfikator klienta Twojej aplikacji. Tę wartość znajdziesz w Konsoli interfejsów API.
scope Wymagane. Lista zakresów oddzielonych spacjami, które identyfikują zasoby, do których aplikacja może uzyskać dostęp w imieniu użytkownika. Te wartości informują ekran zgody, który Google wyświetla użytkownikowi.
include_granted_scopes Opcjonalne, domyślnie true. Umożliwia aplikacjom korzystanie z autoryzacji stopniowej w celu zgłaszania w odpowiednim kontekście próśb o dostęp do dodatkowych zakresów. Jeśli ustawisz wartość tego parametru na false i żądanie autoryzacji zostanie zaakceptowane, nowy token dostępu będzie obejmować tylko zakresy, o które scope poprosił w tym CodeClientConfig.
redirect_uri Wymagane w przypadku przekierowania. Określa, gdzie serwer API przekierowuje użytkownika po zakończeniu procesu autoryzacji. Wartość musi dokładnie odpowiadać jednemu z autoryzowanych identyfikatorów URI przekierowania klienta OAuth 2.0, który został skonfigurowany w konsoli interfejsu API, i musi być zgodna z naszymi zasadami weryfikacji identyfikatorów URI przekierowania. Właściwość zostanie zignorowana przez interfejs użytkownika wyskakującego okienka.
callback Wymagane w przypadku wyskakującego okienka. Funkcja JavaScript, która obsługuje zwróconą odpowiedź kodu. Usługa zostanie zignorowana przez interfejs przekierowania.
state Opcjonalnie. Zalecane w przypadku przekierowań. Określa dowolną wartość ciągu znaków, której aplikacja używa do utrzymywania stanu między żądaniem autoryzacji a odpowiedzią serwera autoryzacji.
enable_granular_consent Wycofana, nie ma wpływu, jeśli jest ustawiona. Szczegółowe informacje o zachowaniu związanym ze zgodą użytkowników znajdziesz w sekcji szczegółowe uprawnienia.
enable_serial_consent Wycofana, nie ma wpływu, jeśli jest ustawiona. Szczegółowe informacje o zachowaniu związanym ze zgodą użytkowników znajdziesz w sekcji szczegółowe uprawnienia.
login_hint Opcjonalnie. Jeśli Twoja aplikacja wie, który użytkownik powinien autoryzować żądanie, może użyć tej właściwości, aby przekazać Google podpowiedź logowania. Jeśli się to uda, wybór konta zostanie pominięty. Adres e-mail lub wartość pola sub tokena identyfikatora użytkownika docelowego. Więcej informacji znajdziesz w polu login_hint w dokumentacji OpenID Connect.
hd Opcjonalnie. Jeśli aplikacja zna domenę Workspace, do której należy użytkownik, użyj jej, aby przekazać wskazówkę do Google. Jeśli operacja się powiedzie, konta użytkowników będą ograniczone do podanej domeny lub wstępnie wybrane dla niej. Więcej informacji znajdziesz w polu hd w dokumentacji OpenID Connect.
ux_mode Opcjonalnie. Tryb UX, który ma być używany w przepływie autoryzacji. Domyślnie otworzy on proces uzyskiwania zgody w wyskakującym okienku. Prawidłowe wartości to popupredirect.
select_account Opcjonalne, domyślnie „false”. Wartość logiczna, która wyświetla użytkownikowi prośbę o wybranie konta.
error_callback Opcjonalnie. Funkcja JavaScriptu, która obsługuje niektóre błędy inne niż OAuth, np. nie udało się otworzyć wyskakującego okienka lub zostało ono zamknięte przed zwróceniem odpowiedzi OAuth.

Szczegółowy powód podany jest w polu `type` parametru wejściowego.
  • popup_failed_to_open Nie udało się otworzyć wyskakującego okienka.
  • popup_closed Wyskakujące okienko zostało zamknięte przed zwróceniem odpowiedzi OAuth.
  • unknown – obiekt zastępczy dla innych błędów.

Typ danych: CodeClient

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

interface CodeClient {   requestCode(): void; } 

Typ danych: CodeResponse

Do metody callback w wyskakującym okienku UX zostanie przekazany obiekt JavaScriptu CodeResponse. W przypadku przekierowania CodeResponse zostanie przekazany jako parametry URL.

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

Właściwości
code Kod autoryzacji z odpowiedzi z tokenem.
scope Lista zakresów zatwierdzonych przez użytkownika, oddzielonych spacjami.
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 Tekst ASCII czytelny dla człowieka zawierający dodatkowe informacje, które pomagają programiście klienta zrozumieć, jaki błąd wystąpił.
error_uri Identyfikator URI strony internetowej z informacjami o błędzie, które są czytelne dla człowieka. Służy do przekazywania deweloperowi klienta dodatkowych informacji o błędzie.

Metoda: google.accounts.oauth2.initTokenClient

Metoda initTokenClient inicjuje i zwraca klienta tokena z konfiguracjami 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 Twojej aplikacji. Znajdziesz ją w Konsoli interfejsów API.
callback Wymagane. Funkcja JavaScript, która obsługuje zwróconą odpowiedź tokena.
scope Wymagane. Lista zakresów oddzielonych spacjami, które identyfikują zasoby, do których aplikacja może uzyskać dostęp w imieniu użytkownika. Te wartości informują ekran zgody, który Google wyświetla użytkownikowi.
include_granted_scopes Opcjonalne, domyślnie true. Umożliwia aplikacjom korzystanie z autoryzacji stopniowej w celu zgłaszania w odpowiednim kontekście próśb o dostęp do dodatkowych zakresów. Jeśli ustawisz wartość tego parametru na false i żądanie autoryzacji zostanie zaakceptowane, nowy token dostępu będzie obejmować tylko zakresy, o które scope poprosił w tym TokenClientConfig.
prompt Opcjonalny, domyślnie „select_account”. Rozdzielona spacjami lista promptów, w której rozróżniana jest wielkość liter, do wyświetlenia użytkownikowi. Możliwe wartości:
  • pusty ciąg znaków – użytkownik zobaczy prośbę tylko przy pierwszym żądaniu dostępu przez aplikację. Nie można go określić z innymi wartościami.
  • „none”: nie wyświetlaj żadnych ekranów uwierzytelniania ani zgody. Nie można jej określać z innymi wartościami.
  • „consent” – prośba o zgodę użytkownika.
  • „select_account”: wyświetla użytkownikowi prośbę o wybranie konta.
enable_granular_consent Wycofana, nie ma wpływu, jeśli jest ustawiona. Szczegółowe informacje o zachowaniu związanym ze zgodą użytkowników znajdziesz w sekcji szczegółowe uprawnienia.
enable_serial_consent Wycofana, nie ma wpływu, jeśli jest ustawiona. Szczegółowe informacje o zachowaniu związanym ze zgodą użytkowników znajdziesz w sekcji szczegółowe uprawnienia.
login_hint Opcjonalnie. Jeśli Twoja aplikacja wie, który użytkownik powinien autoryzować żądanie, może użyć tej właściwości, aby przekazać Google podpowiedź logowania. Jeśli się to uda, wybór konta zostanie pominięty. Adres e-mail lub wartość pola sub tokena identyfikatora użytkownika docelowego. Więcej informacji znajdziesz w polu login_hint w dokumentacji OpenID Connect.
hd Opcjonalnie. Jeśli aplikacja zna domenę Workspace, do której należy użytkownik, użyj jej, aby przekazać wskazówkę do Google. Jeśli operacja się powiedzie, konta użytkowników będą ograniczone do podanej domeny lub wstępnie wybrane dla niej. 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 utrzymywania stanu między żądaniem autoryzacji a odpowiedzią serwera autoryzacji.
error_callback Opcjonalnie. Funkcja JavaScriptu, która obsługuje niektóre błędy inne niż OAuth, np. nie udało się otworzyć wyskakującego okienka lub zostało ono zamknięte przed zwróceniem odpowiedzi OAuth.

Szczegółowy powód podany jest w polu `type` parametru wejściowego.
  • popup_failed_to_open Nie udało się otworzyć wyskakującego okienka.
  • popup_closed Wyskakujące okienko zostało zamknięte przed zwróceniem odpowiedzi OAuth.
  • unknown – obiekt zastępczy dla innych błędów.

Typ danych: TokenClient

Klasa ma tylko jedną metodę publiczną requestAccessToken, która rozpoczyna przepływ 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 tej tabeli znajdziesz właściwości typu danych OverridableTokenClientConfig.

Właściwości
scope Opcjonalnie. Lista zakresów oddzielonych spacjami, które identyfikują zasoby, do których aplikacja może uzyskać dostęp w imieniu użytkownika. Te wartości informują ekran zgody, który Google wyświetla użytkownikowi.
include_granted_scopes Opcjonalne, domyślnie true. Umożliwia aplikacjom korzystanie z autoryzacji stopniowej w celu zgłaszania w odpowiednim kontekście próśb o dostęp do dodatkowych zakresów. Jeśli ustawisz wartość tego parametru na false i żądanie autoryzacji zostanie zaakceptowane, nowy token dostępu będzie obejmować tylko zakresy, o które scope poprosił w tym OverridableTokenClientConfig.
prompt Opcjonalnie. Rozdzielona spacjami lista promptów, w której rozróżniana jest wielkość liter, do wyświetlenia użytkownikowi.
enable_granular_consent Wycofana, nie ma wpływu, jeśli jest ustawiona. Szczegółowe informacje o zachowaniu związanym ze zgodą użytkowników znajdziesz w sekcji szczegółowe uprawnienia.
enable_serial_consent Wycofana, nie ma wpływu, jeśli jest ustawiona. Szczegółowe informacje o zachowaniu związanym ze zgodą użytkowników znajdziesz w sekcji szczegółowe uprawnienia.
login_hint Opcjonalnie. Jeśli Twoja aplikacja wie, który użytkownik powinien autoryzować żądanie, może użyć tej właściwości, aby przekazać Google podpowiedź logowania. Jeśli się to uda, wybór konta zostanie pominięty. Adres e-mail lub wartość pola sub 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 utrzymywania stanu między żądaniem autoryzacji a odpowiedzią serwera autoryzacji.

Typ danych: TokenResponse

Do metody wywołania zwrotnego w interfejsie wyskakującego okienka zostanie przekazany TokenResponseobiekt JavaScript.

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

Właściwości
access_token Token dostępu w odpowiedzi z tokenem.
expires_in Okres ważności tokena dostępu w sekundach.
hd Hostowana domena, do której należy zalogowany użytkownik.
prompt Wartość promptu, która została użyta z listy możliwych wartości określonych przez TokenClientConfig lub OverridableTokenClientConfig.
token_type Typ wydanego tokena.
scope Lista zakresów zatwierdzonych przez użytkownika, oddzielonych spacjami.
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 Tekst ASCII czytelny dla człowieka zawierający dodatkowe informacje, które pomagają programiście klienta zrozumieć, jaki błąd wystąpił.
error_uri Identyfikator URI strony internetowej z informacjami o błędzie, które są czytelne dla człowieka. Służy do przekazywania 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 string[] Opcjonalnie. Inne zakresy do sprawdzenia.
Zwroty
Wartość logiczna Wartość Prawda, jeśli wszystkie zakresy zostały przyznane.

Metoda: google.accounts.oauth2.hasGrantedAnyScope

Sprawdza, czy użytkownik przyznał któryś z określonych 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 string[] Opcjonalnie. Inne zakresy do sprawdzenia.
Zwroty
Wartość logiczna Wartość „Prawda”, jeśli przyznano którykolwiek z zakresów.

Metoda: google.accounts.oauth2.revoke

Metoda revoke cofa wszystkie zakresy, które użytkownik przyznał aplikacji. Do cofnięcia 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. Obsługa 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 powodzenia, false – w przypadku niepowodzenia.
error Ciąg tekstowy. W przypadku powodzenia zwraca wartość undefined. 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ć, że uprawnienia powiązane z accessToken zostały cofnięte.
  • invalid_request – tokenu nie można unieważnić. Upewnij się, że accessToken to prawidłowe dane logowania Google OAuth 2.0.
error_description Ciąg tekstowy. W przypadku powodzenia zwraca wartość undefined. Tekst ASCII zrozumiały dla człowieka zawiera dodatkowe informacje o error. Dzięki temu deweloperzy mogą lepiej zrozumieć, jaki błąd wystąpił. Ciąg znaków error_description jest dostępny tylko w języku angielskim. W przypadku typowych błędów wymienionych w error odpowiedniej error_description:
  • invalid_token – token wygasł lub został unieważniony.
  • invalid_request – tokenu nie można unieważnić.