В этом справочнике описывается 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 :
  |