В этом справочнике описывается 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` входного параметра содержит подробную причину. 
 | 
Тип данных: 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» . Список запросов, разделенных пробелами и чувствительных к регистру, для отображения пользователю. Возможные значения: 
 | 
| 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` входного параметра содержит подробную причину. 
 | 
Тип данных: 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:
 | 
| error_description | Строка. Не определено при успешном выполнении. Понятный человеку текст ASCII предоставляет дополнительную информацию о свойстве error. Разработчики могут использовать это для лучшего понимания произошедшей ошибки. Строкаerror_descriptionдоступна только на английском языке. Для распространённых ошибок, перечисленных вerrorиспользуется соответствующееerror_description:
 |