Ссылка на API JavaScript для авторизации аккаунта Google

В этом справочнике описывается API JavaScript авторизации аккаунта Google, используемый для получения кодов авторизации или токенов доступа от Google.

Метод: google.accounts.oauth2.initCodeClient

Метод initCodeClient инициализирует и возвращает клиентский код с конфигурациями в параметре.

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

Тип данных: CodeClientConfig

В следующей таблице перечислены свойства типа данных CodeClientConfig .

Характеристики
client_id Обязательно. Идентификатор клиента для вашего приложения. Это значение можно найти в консоли Google Cloud.
scope Обязательно. Список областей действия, разделенных пробелами, которые определяют ресурсы, к которым ваше приложение может получить доступ от имени пользователя. Эти значения используются в окне согласия, которое Google отображает пользователю.
include_granted_scopes Необязательный параметр, значение по умолчанию — true . Позволяет приложениям использовать инкрементальную авторизацию для запроса доступа к дополнительным областям в контексте. Если этому параметру присвоено значение false и запрос авторизации разрешён, то новый токен доступа будет распространяться только на те области scope которые запрошены в этом CodeClientConfig .
redirect_uri Требуется для перенаправления UX. Определяет, куда сервер API перенаправляет пользователя после завершения процесса авторизации. Значение должно точно соответствовать одному из разрешённых URI перенаправления для клиента OAuth 2.0, настроенных в Google Cloud Console, и соответствовать правилам проверки URI перенаправления . При использовании ux_mode: 'popup' этот параметр игнорируется, и redirect_uri по умолчанию соответствует источнику страницы, вызывающей initCodeClient .
callback Требуется для всплывающих окон. Функция JavaScript, обрабатывающая возвращаемый код ответа. Свойство будет проигнорировано при перенаправлении.
state Необязательно. Рекомендуется для перенаправления пользовательского опыта. Указывает любое строковое значение, которое ваше приложение использует для сохранения состояния между запросом авторизации и ответом сервера авторизации.
enable_granular_consent Устарело, не действует при установке. Подробную информацию о поведении согласия см. в разделе «Детальные разрешения» .
enable_serial_consent Устарело, не действует при установке. Подробную информацию о поведении согласия см. в разделе «Детальные разрешения» .
login_hint Необязательно. Если ваше приложение знает, какой пользователь должен авторизовать запрос, оно может использовать это свойство для предоставления подсказки для входа в Google. В случае успешного входа выбор учётной записи пропускается. Значение подполя адреса электронной почты или токена идентификатора для целевого пользователя. Подробнее см. в описании поля login_hint в документации OpenID Connect.
hd Необязательно. Если вашему приложению известен домен Workspace, к которому принадлежит пользователь, используйте его, чтобы предоставить подсказку Google. В случае успеха учётные записи пользователей ограничиваются указанным доменом или выбираются заранее. Подробнее см. в описании поля hd в документации OpenID Connect.
ux_mode Необязательно. popup или redirect , по умолчанию — popup . Управляет режимом пользовательского интерфейса, используемым для потока кода авторизации: с помощью всплывающего диалогового окна на текущей странице или посредством перенаправлений на всю страницу.
select_account Необязательно, по умолчанию — «false» . Логическое значение, предлагающее пользователю выбрать учётную запись.
error_callback Необязательно. Функция JavaScript, обрабатывающая некоторые ошибки, не связанные с OAuth, например, всплывающее окно, которое не открывается или закрывается до возврата ответа OAuth.

Поле `type` входного параметра содержит подробную причину.
  • popup_failed_to_open Не удалось открыть всплывающее окно.
  • popup_closed Всплывающее окно закрывается до возврата ответа OAuth.
  • неизвестный Заполнитель для других ошибок.

Тип данных: CodeClient

Класс имеет только один публичный метод requestCode, который запускает поток UX-кода OAuth 2.0.

interface CodeClient {   requestCode(): void; } 

Тип данных: CodeResponse

В вашем методе callback во всплывающем окне будет передан объект JavaScript CodeResponse . В перенаправлении CodeResponse будет передан в качестве параметров URL.

В следующей таблице перечислены свойства типа данных CodeResponse .

Характеристики
code Код авторизации успешного ответа токена.
scope Разделенный пробелами список областей, одобренных пользователем.
state Строковое значение, которое ваше приложение использует для поддержания состояния между запросом авторизации и ответом.
error Один код ошибки ASCII.
error_description Понятный человеку текст ASCII, содержащий дополнительную информацию, которая помогает разработчику клиента понять произошедшую ошибку.
error_uri URI, идентифицирующий удобочитаемую веб-страницу с информацией об ошибке, используемую для предоставления разработчику клиента дополнительной информации об ошибке.

Метод: google.accounts.oauth2.initTokenClient

Метод initTokenClient инициализирует и возвращает клиент токена с конфигурациями в параметре.

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

Тип данных: TokenClientConfig

В следующей таблице перечислены свойства типа данных TokenClientConfig .

Характеристики
client_id Обязательно. Идентификатор клиента для вашего приложения. Это значение можно найти в консоли Google Cloud .
callback Обязательно. Функция JavaScript, обрабатывающая возвращаемый ответ токена.
scope Обязательно. Список областей действия, разделенных пробелами, которые определяют ресурсы, к которым ваше приложение может получить доступ от имени пользователя. Эти значения используются в окне согласия, которое Google отображает пользователю.
include_granted_scopes Необязательный параметр, значение по умолчанию — true . Позволяет приложениям использовать инкрементальную авторизацию для запроса доступа к дополнительным областям в контексте. Если этому параметру присвоено значение false и запрос авторизации разрешён, то новый токен доступа будет распространяться только на те области scope которые запрошены в этом TokenClientConfig .
prompt Необязательный параметр, по умолчанию — «select_account» . Список запросов, разделенных пробелами и чувствительных к регистру, для отображения пользователю. Возможные значения:
  • Пустая строка. Пользователь получит запрос только при первом запросе доступа вашим приложением. Не может быть задано с другими значениями.
  • «none» — не отображать экраны аутентификации или согласия. Не допускается использование с другими значениями.
  • «согласие» Запросить у пользователя согласие.
  • 'select_account' Предложить пользователю выбрать учетную запись.
enable_granular_consent Устарело, не действует при установке. Подробную информацию о поведении согласия см. в разделе «Детальные разрешения» .
enable_serial_consent Устарело, не действует при установке. Подробную информацию о поведении согласия см. в разделе «Детальные разрешения» .
login_hint Необязательно. Если ваше приложение знает, какой пользователь должен авторизовать запрос, оно может использовать это свойство для предоставления подсказки для входа в Google. В случае успешного входа выбор учётной записи пропускается. Значение подполя адреса электронной почты или токена идентификатора для целевого пользователя. Подробнее см. в описании поля login_hint в документации OpenID Connect.
hd Необязательно. Если вашему приложению известен домен Workspace, к которому принадлежит пользователь, используйте его, чтобы предоставить подсказку Google. В случае успеха учётные записи пользователей ограничиваются указанным доменом или выбираются заранее. Подробнее см. в описании поля hd в документации OpenID Connect.
state Необязательно. Не рекомендуется. Указывает любое строковое значение, которое ваше приложение использует для сохранения состояния между запросом на авторизацию и ответом сервера авторизации.
error_callback Необязательно. Функция JavaScript, обрабатывающая некоторые ошибки, не связанные с OAuth, например, всплывающее окно, которое не открывается или закрывается до возврата ответа OAuth.

Поле `type` входного параметра содержит подробную причину.
  • popup_failed_to_open Не удалось открыть всплывающее окно.
  • popup_closed Всплывающее окно закрывается до возврата ответа OAuth.
  • неизвестный Заполнитель для других ошибок.

Тип данных: TokenClient

Класс имеет только один публичный метод requestAccessToken , который запускает поток UX-тестирования токена OAuth 2.0.

interface TokenClient {   requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void; } 
Аргументы
overrideConfig OverridableTokenClientConfig Необязательно. Конфигурации, которые необходимо переопределить в этом методе.

Тип данных: OverridableTokenClientConfig

В следующей таблице перечислены свойства типа данных OverridableTokenClientConfig .

Характеристики
scope Необязательно. Список областей действия, разделенных пробелами, которые определяют ресурсы, к которым ваше приложение может получить доступ от имени пользователя. Эти значения используются в окне согласия, которое Google отображает пользователю.
include_granted_scopes Необязательный параметр, значение по умолчанию — true . Позволяет приложениям использовать инкрементальную авторизацию для запроса доступа к дополнительным областям в контексте. Если этому параметру присвоено значение false и запрос авторизации разрешён, новый токен доступа будет распространяться только на те области, scope запрошены в этом OverridableTokenClientConfig .
prompt Необязательно. Список запросов, разделенных пробелами и чувствительных к регистру, для отображения пользователю.
enable_granular_consent Устарело, не действует при установке. Подробную информацию о поведении согласия см. в разделе «Детальные разрешения» .
enable_serial_consent Устарело, не действует при установке. Подробную информацию о поведении согласия см. в разделе «Детальные разрешения» .
login_hint Необязательно. Если ваше приложение знает, какой пользователь должен авторизовать запрос, оно может использовать это свойство для предоставления подсказки для входа в Google. В случае успешного входа выбор учётной записи пропускается. Значение подполя адреса электронной почты или токена идентификатора для целевого пользователя. Подробнее см. в описании поля login_hint в документации OpenID Connect.
state Необязательно. Не рекомендуется. Указывает любое строковое значение, которое ваше приложение использует для сохранения состояния между запросом на авторизацию и ответом сервера авторизации.

Тип данных: TokenResponse

Объект JavaScript TokenResponse будет передан вашему методу обратного вызова во всплывающем UX-интерфейсе.

В следующей таблице перечислены свойства типа данных TokenResponse .

Характеристики
access_token Токен доступа успешного ответа токена.
expires_in Время жизни токена доступа в секундах.
hd Размещенный домен, к которому принадлежит вошедший в систему пользователь.
prompt Значение подсказки, которое было использовано из возможного списка значений, указанных TokenClientConfig или OverridableTokenClientConfig.
token_type Тип выпущенного токена.
scope Разделенный пробелами список областей, одобренных пользователем.
state Строковое значение, которое ваше приложение использует для поддержания состояния между запросом авторизации и ответом.
error Один код ошибки ASCII.
error_description Удобный для восприятия текст ASCII, содержащий дополнительную информацию, которая помогает разработчику клиента понять произошедшую ошибку.
error_uri URI, идентифицирующий удобочитаемую веб-страницу с информацией об ошибке, используемую для предоставления разработчику клиента дополнительной информации об ошибке.

Метод: google.accounts.oauth2.hasGrantedAllScopes

Проверяет, предоставил ли пользователь все указанные области действия.

google.accounts.oauth2.hasGrantedAllScopes(                                             tokenResponse: TokenResponse,                                             firstScope: string, ...restScopes: string[]                                           ): boolean; 
Аргументы
tokenResponse TokenResponse Обязательно. Объект TokenResponse .
firstScope нить Обязательно. Область проверки.
restScopes нить[] Необязательно. Другие области для проверки.
Возврат
булев True, если предоставлены все возможности.

Метод: google.accounts.oauth2.hasGrantedAnyScope

Проверяет, предоставил ли пользователь какую-либо из указанных областей.

google.accounts.oauth2.hasGrantedAnyScope(                                            tokenResponse: TokenResponse,                                            firstScope: string, ...restScopes: string[]                                          ): boolean; 
Аргументы
tokenResponse TokenResponse Обязательно. Объект TokenResponse .
firstScope нить Обязательно. Область проверки.
restScopes нить[] Необязательно. Другие области для проверки.
Возврат
булев True, если предоставлена хотя бы одна из областей.

Метод: google.accounts.oauth2.revoke

Метод revoke отзывает все разрешения, предоставленные пользователем приложению. Для отзыва разрешения требуется действительный токен доступа.

google.accounts.oauth2.revoke(accessToken: string, done: () => void): void; 
Аргументы
accessToken нить Обязательно. Действительный токен доступа.
callback функция Необязательно. Обработчик RevocationResponse .

Тип данных: RevocationResponse

Объект JavaScript RevocationResponse будет передан вашему методу обратного вызова.

В следующей таблице перечислены свойства типа данных RevocationResponse .

Характеристики
successful Логическое значение. true при успешном выполнении, false при неудаче.
error Строка. Не определено в случае успеха. Один код ошибки ASCII. Сюда входят, помимо прочего, стандартные коды ошибок OAuth 2.0 . Распространенные ошибки при использовании метода revoke :
  • invalid_token — токен уже истёк или отозван до вызова метода revoke . В большинстве случаев можно считать, что грант, связанный с accessToken , отозван.
  • invalid_request — токен не подлежит отзыву. Убедитесь, что accessToken — это действительные учётные данные Google OAuth 2.0.
error_description Строка. Не определено при успешном выполнении. Понятный человеку текст ASCII предоставляет дополнительную информацию о свойстве error . Разработчики могут использовать это для лучшего понимания произошедшей ошибки. Строка error_description доступна только на английском языке. Для распространённых ошибок, перечисленных в error используется соответствующее error_description :
  • invalid_token — токен истек или отозван.
  • invalid_request - Токен не подлежит отзыву.