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