На этой справочной странице описывается API атрибутов HTML-данных для входа через Google, используемый для отображения кнопки «Войти через Google» или запроса «Вход в одно касание» на веб-страницах.
Элемент с идентификатором "g_id_onload"
Атрибуты данных «Войти через Google» можно добавлять в любые видимые или невидимые элементы, такие как <div> и <span> . Единственное требование — идентификатор элемента должен быть установлен на g_id_onload . Не следует добавлять этот идентификатор к нескольким элементам одновременно.
Атрибуты данных
В следующей таблице перечислены атрибуты данных с их описаниями:
| Атрибут | |
|---|---|
data-client_id | Идентификатор клиента вашего приложения |
data-color_scheme | Цветовая схема, примененная к подсказке «Одно касание». |
data-auto_prompt | Отобразить Google в одно касание. |
data-auto_select | Включает автоматический выбор в Google One Tap. |
data-login_uri | URL-адрес вашей конечной точки входа |
data-callback | Название функции обработчика токена идентификатора JavaScript |
data-native_login_uri | URL-адрес конечной точки обработчика учетных данных для паролей |
data-native_callback | Имя функции обработчика учетных данных пароля JavaScript |
data-native_id_param | Имя параметра для значения credential.id |
data-native_password_param | Имя параметра для значения credential.password |
data-cancel_on_tap_outside | Определяет, следует ли отменять запрос, если пользователь щелкнет мышью за пределами поля запроса. |
data-prompt_parent_id | DOM-идентификатор элемента-контейнера для запроса «Одно касание» |
data-skip_prompt_cookie | Пропускает одно касание, если указанный cookie имеет непустое значение. |
data-nonce | Случайная строка для токенов идентификатора. |
data-context | Заголовок и текст в подсказке One Tap |
data-moment_callback | Название функции обработчика уведомлений о состоянии подсказки в пользовательском интерфейсе |
data-state_cookie_domain | Если вам необходимо вызвать One Tap в родительском домене и его поддоменах, передайте родительский домен в этот атрибут, чтобы использовался один общий cookie-файл. |
data-ux_mode | Последовательность действий пользователя при нажатии кнопки «Войти через Google» |
data-allowed_parent_origin | Источники, которым разрешено встраивать промежуточный iframe. One Tap работает в режиме промежуточного iframe, если этот атрибут присутствует. |
data-intermediate_iframe_close_callback | Отменяет стандартное поведение промежуточного iframe, когда пользователи вручную закрывают One Tap. |
data-itp_support | Обеспечивает улучшенный пользовательский интерфейс «Одно касание» в браузерах ITP. |
data-login_hint | Пропустите выбор учетной записи, предоставив пользователю подсказку. |
data-hd | Ограничить выбор учетных записей по домену. |
data-use_fedcm_for_prompt | Разрешите браузеру управлять запросами на авторизацию пользователей и выступать посредником в процессе входа в систему между вашим веб-сайтом и Google. |
data-use_fedcm_for_button | Это поле определяет, следует ли использовать пользовательский интерфейс кнопок FedCM в Chrome (настольная версия M125+ и Android M128+). По умолчанию — false . |
data-button_auto_select | Включить ли параметр автоматического выбора для процесса нажатия кнопки FedCM. Если включено, пользователи с активной сессией Google будут автоматически авторизованы, минуя запрос выбора учетной записи. Значение по умолчанию — false . |
Типы атрибутов
В следующих разделах содержится подробная информация о типе каждого атрибута и пример его использования.
data-client_id
Этот атрибут представляет собой идентификатор клиента вашего приложения, который находится и создается в консоли Google Cloud. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Да | data-client_id="CLIENT_ID.apps.googleusercontent.com" |
цветовая схема данных
В этом поле задается цветовая схема, применяемая к подсказке «Одно касание». Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный параметр. По умолчанию используется цветовая схема системы пользователя. | data-color_scheme="dark" |
В таблице ниже перечислены доступные цветовые схемы и их описания.
| Цветовая гамма | |
|---|---|
default | Применить цветовую схему по умолчанию, установленную в системе пользователя; в зависимости от предпочтений пользователя, схема может быть светлой или темной. |
light | Используйте светлую цветовую гамму. |
dark | Примените темную цветовую гамму. |
data-auto_prompt
Этот атрибут определяет, отображать ли функцию «Одно касание» или нет. Значение по умолчанию — true . Если это значение равно false , функция «Одно касание» в Google не отображается. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| логический | Необязательный | data-auto_prompt="true" |
data-auto_select
Этот атрибут определяет, следует ли автоматически возвращать токен ID без какого-либо взаимодействия с пользователем, если ваше приложение было одобрено только одной сессией Google. Значение по умолчанию — false . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| логический | Необязательный | data-auto_select="true" |
data-login_uri
Этот атрибут представляет собой URI вашей конечной точки входа.
Значение должно точно совпадать с одним из разрешенных URI перенаправления для клиента OAuth 2.0, который вы настроили на платформе Google Auth, и должно соответствовать нашим правилам проверки URI перенаправления .
Этот атрибут можно опустить, если текущая страница — это страница входа в систему, в этом случае учетные данные по умолчанию отправляются на эту страницу.
Ответ с учетными данными токена идентификации отправляется на вашу конечную точку входа, если функция обратного вызова не определена, и пользователь нажимает кнопки «Войти через Google» или «Вход одним касанием», либо происходит автоматический вход.
Ваша точка входа в систему должна обрабатывать POST-запросы, содержащие параметр credential со значением токена идентификатора в теле запроса.
Дополнительную информацию см. в следующей таблице:
| Тип | Необязательный | Пример |
|---|---|---|
| URL | По умолчанию используется URI текущей страницы или указанное вами значение. Игнорируется, если заданы параметры data-ux_mode="popup" и data-callback . | data-login_uri="https://www.example.com/login" |
обратный вызов данных
Этот атрибут содержит имя функции JavaScript, которая обрабатывает возвращаемый токен ID. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Обязательно, если параметр data-login_uri не задан. | data-callback="handleToken" |
Может быть использован один из атрибутов data-login_uri или data-callback . Это зависит от следующих конфигураций компонента и режима UX:
Атрибут
data-login_uriнеобходим для режимаredirectкнопки "Войти через Google", в котором игнорируется атрибутdata-callback.Для режима
popupокна Google One Tap и режима пользовательского интерфейса кнопки входа в Google необходимо установить один из этих двух атрибутов. Если установлены оба, атрибутdata-callbackимеет более высокий приоритет.
Функции JavaScript, находящиеся внутри пространства имен, не поддерживаются HTML API. Вместо этого используйте глобальную функцию JavaScript без пространства имен. Например, используйте mylibCallback вместо mylib.callback .
data-native_login_uri
Этот атрибут представляет собой URL-адрес конечной точки обработчика учетных данных пароля. Если вы установите атрибут data-native_login_uri или data-native_callback , библиотека JavaScript будет использовать встроенный менеджер учетных данных, если сессия Google отсутствует. Вы не можете установить одновременно атрибуты data-native_callback и data-native_login_uri . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-login_uri="https://www.example.com/password_login" |
data-native_callback
Этот атрибут указывает имя функции JavaScript, которая обрабатывает учетные данные пароля, возвращаемые встроенным менеджером учетных данных браузера. Если вы установите атрибут data-native_login_uri или data-native_callback , библиотека JavaScript будет использовать встроенный менеджер учетных данных, если сессия Google отсутствует. Нельзя устанавливать одновременно data-native_callback и data-native_login_uri . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-native_callback="handlePasswordCredential" |
Функции JavaScript, находящиеся внутри пространства имен, не поддерживаются HTML API. Вместо этого используйте глобальную функцию JavaScript без пространства имен. Например, используйте mylibCallback вместо mylib.callback .
data-native_id_param
При отправке учетных данных пароля в конечную точку обработчика учетных данных пароля вы можете указать имя параметра для поля credential.id . Имя по умолчанию — email . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| URL | Необязательный | data-native_id_param="user_id" |
data-native_password_param
При отправке учетных данных пароля в конечную точку обработчика учетных данных пароля вы можете указать имя параметра для значения credential.password . Имя по умолчанию — password . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| URL | Необязательный | data-native_password_param="pwd" |
data-cancel_on_tap_outside
Этот атрибут определяет, следует ли отменять запрос One Tap, если пользователь щелкает вне поля ввода. Значение по умолчанию — true . Чтобы отключить эту функцию, установите значение false . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| логический | Необязательный | data-cancel_on_tap_outside="false" |
data-prompt_parent_id
Этот атрибут задаёт DOM-идентификатор элемента-контейнера. Если он не задан, в правом верхнем углу окна отображается подсказка «Одно касание». Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-prompt_parent_id="parent_id" |
data-skip_prompt_cookie
Используется cookie-файл для управления отображением запроса One Tap. Если cookie-файл, указанный этим атрибутом, имеет непустое значение, запрос не отображается. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-skip_prompt_cookie="SID" |
дата-нонс
Этот атрибут представляет собой случайную строку, используемую токеном ID для предотвращения атак повторного воспроизведения. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-nonce="biaqbm70g23" |
Длина одноразового числа (nonce) ограничена максимальным размером JWT, поддерживаемым вашей средой, а также индивидуальными ограничениями размера HTTP-запросов для каждого браузера и сервера.
контекст данных
Это поле изменяет текст заголовка и сообщений, отображаемых в подсказке One Tap; для браузеров ITP эффект отсутствует. По умолчанию используется signin .
Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-context="use" |
В таблице ниже перечислены все доступные контексты и их описания:
| Контекст | |
|---|---|
signin | "Войти в систему" |
signup | "Зарегистрироваться на" |
use | "Использовать" |
data-moment_callback
Этот атрибут представляет собой имя функции обработчика уведомлений о состоянии пользовательского интерфейса. Для получения дополнительной информации см. тип данных PromptMomentNotification .
Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-moment_callback="logMomentNotification" |
Функции JavaScript, находящиеся внутри пространства имен, не поддерживаются HTML API. Вместо этого используйте глобальную функцию JavaScript без пространства имен. Например, используйте mylibCallback вместо mylib.callback .
data-state_cookie_domain
Если вам необходимо отображать One Tap в родительском домене и его поддоменах, передайте родительский домен этому атрибуту, чтобы использовался один общий cookie-файл. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-state_cookie_domain="example.com" |
data-ux_mode
Этот атрибут задает сценарий взаимодействия пользователя с кнопкой «Войти через Google». Значение по умолчанию — popup . Этот атрибут не влияет на взаимодействие пользователя в одно касание. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-ux_mode="redirect" |
В таблице ниже перечислены доступные режимы пользовательского интерфейса и их описания.
| Режим UX | |
|---|---|
popup | Выполняет процесс авторизации во всплывающем окне. |
redirect | Обеспечивает автоматическую авторизацию путем перенаправления на всю страницу. |
data-allowed_parent_origin
Источники, которым разрешено встраивать промежуточный iframe. One Tap работает в режиме промежуточного iframe, если этот атрибут присутствует. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| строка или массив строк | Необязательный | data-allowed_parent_origin="https://example.com" |
В таблице ниже перечислены поддерживаемые типы значений и их описания.
| Типы значений | ||
|---|---|---|
string | URI с одним доменом. | "https://example.com" |
string array | Список URI доменов, разделённых запятыми. | "https://news.example.com,https://local.example.com" |
Если значение атрибута data-allowed_parent_origin недопустимо, инициализация промежуточного режима iframe в режиме One Tap завершится неудачей и остановится.
Также поддерживаются префиксы с подстановочными знаками. Например, "https://*.example.com" соответствует example.com и его поддоменам на всех уровнях (например, news.example.com , login.news.example.com ). Что следует учитывать при использовании подстановочных знаков:
- Строки шаблонов не могут состоять только из подстановочного знака и домена верхнего уровня. Например
https:// .comиhttps:// .co.ukнедопустимы, поскольку"https:// .example.com"соответствуетexample.comи всем его поддоменам. Используйте список, разделенный запятыми, для представления двух разных доменов. Например,"https://example1.com,https:// .example2.com"соответствует доменамexample1.com,example2.comи поддоменамexample2.com - Домены с подстановочными знаками должны начинаться с защищенной схемы https://, поэтому
"*.example.com"считается недействительным.
data-intermediate_iframe_close_callback
Этот параметр переопределяет стандартное поведение промежуточного iframe, которое происходит при ручном закрытии One Tap нажатием кнопки «X» в пользовательском интерфейсе One Tap. По умолчанию промежуточный iframe немедленно удаляется из DOM.
Поле data-intermediate_iframe_close_callback действует только в режиме промежуточного iframe. И оно влияет только на промежуточный iframe, а не на iframe с одним касанием. Интерфейс One Tap удаляется перед вызовом функции обратного вызова.
| Тип | Необходимый | Пример |
|---|---|---|
| функция | Необязательный | data-intermediate_iframe_close_callback="logBeforeClose" |
Функции JavaScript, находящиеся внутри пространства имен, не поддерживаются HTML API. Вместо этого используйте глобальную функцию JavaScript без пространства имен. Например, используйте mylibCallback вместо mylib.callback .
data-itp_support
В этом поле определяется, следует ли включать улучшенный пользовательский интерфейс One Tap в браузерах, поддерживающих интеллектуальную защиту от отслеживания (ITP). Значение по умолчанию — false . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| логический | Необязательный | data-itp_support="true" |
data-login_hint
Если ваше приложение заранее знает, какой пользователь должен войти в систему, оно может предоставить Google подсказку для входа. В случае успеха выбор учетной записи пропускается. Допустимые значения: адрес электронной почты или подполе ID-токена.
Для получения более подробной информации см. документацию OpenID Connect по параметру login_hint .
| Тип | Необходимый | Пример |
|---|---|---|
Строка. Может представлять собой адрес электронной почты или значение sub из токена ID. | Необязательный | data-login_hint="elisa.beckett@gmail.com" |
данные-HD
Если у пользователя несколько учетных записей и ему необходимо входить в систему только с помощью учетной записи Workspace, используйте эту опцию для указания доменного имени для Google. В случае успеха, при выборе учетной записи будут отображаться только учетные записи пользователей, относящиеся к указанному домену. Использование подстановочного знака: * позволяет пользователю выбирать только учетные записи Workspace и исключает учетные записи обычных пользователей (user@gmail.com) при выборе учетной записи.
Для получения более подробной информации см. документацию OpenID Connect для hd .
| Тип | Необходимый | Пример |
|---|---|---|
| Строка. Полное доменное имя или *. | Необязательный | data-hd="*" |
data-use_fedcm_for_prompt
Разрешите браузеру управлять запросами на авторизацию пользователей и выступать посредником в процессе входа в систему между вашим веб-сайтом и Google. По умолчанию — false. Дополнительную информацию см. на странице «Переход на FedCM» .
| Тип | Необходимый | Пример |
|---|---|---|
| логический | Необязательный | data-use_fedcm_for_prompt="true" |
data-use_fedcm_for_button
Это поле определяет, следует ли использовать пользовательский интерфейс кнопок FedCM в Chrome (настольная версия M125+ и Android M128+). По умолчанию — false . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| логический | Необязательный | data-use_fedcm_for_button="true" |
data-button_auto_select
Это поле определяет, следует ли включить опцию автоматического выбора для процесса нажатия кнопки FedCM. Если она включена, пользователи с активной сессией Google будут автоматически авторизованы, минуя запрос выбора учетной записи. По умолчанию — false . Необходимо явно включить автоматический вход с помощью кнопки во время запуска функции. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| логический | Необязательный | data-button_auto_select="true" |
Элемент с классом "g_id_signin"
Если добавить атрибут g_id_signin к атрибуту ` class элемента, элемент отобразится как кнопка «Войти через Google».
На одной странице можно отобразить несколько кнопок «Войти через Google». Каждая кнопка может иметь свои собственные визуальные настройки. Настройки определяются следующими атрибутами данных.
Атрибуты визуальных данных
В следующей таблице перечислены атрибуты визуальных данных и их описания:
| Атрибут | |
|---|---|
data-type | Тип кнопки: иконка или стандартная кнопка. |
data-theme | Тема оформления кнопки. Например, filled_blue или filled_black. |
data-size | Размер кнопки. Например, маленькая или большая. |
data-text | Текст кнопки. Например, «Войти через Google» или «Зарегистрироваться через Google». |
data-shape | Форма кнопки. Например, прямоугольная или круглая. |
data-logo_alignment | Расположение логотипа Google: слева или по центру. |
data-width | Ширина кнопки в пикселях. |
data-locale | Текст кнопки отображается на языке, заданном в этом атрибуте. |
data-click_listener | Если эта функция задана, она вызывается при нажатии кнопки «Войти через Google». |
data-state | Если задано, эта строка возвращает токен идентификатора. |
Типы атрибутов
В следующих разделах содержится подробная информация о типе каждого атрибута и пример его использования.
тип данных
Тип кнопки. Значение по умолчанию — standard . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Да | data-type="icon" |
В таблице ниже перечислены все доступные типы кнопок и их описания:
| Тип | |
|---|---|
standard | ![]() ![]() |
icon | |
тема данных
Тема оформления кнопок. Значение по умолчанию — outline . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-theme="filled_blue" |
В таблице ниже перечислены доступные темы оформления и их описания:
| Тема | |
|---|---|
outline | ![]() ![]() |
filled_blue | ![]() ![]() |
filled_black | ![]() ![]() |
размер данных
Размер кнопки. Значение по умолчанию — large . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-size="small" |
В таблице ниже перечислены доступные размеры кнопок и их описания.
| Размер | |
|---|---|
large | ![]() ![]() |
medium | ![]() |
small | ![]() |
данные-текст
Текст кнопки. Значение по умолчанию — signin_with . Визуальных различий в тексте кнопок-иконок с разными атрибутами data-text нет. Единственное исключение — когда текст читается для обеспечения доступности экрана.
Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-text="signup_with" |
В таблице ниже перечислены доступные тексты для кнопок и их описания:
| Текст | |
|---|---|
signin_with | ![]() |
signup_with | ![]() |
continue_with | ![]() |
signin | ![]() |
форма данных
Форма кнопки. Значение по умолчанию — rectangular . Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-shape="rectangular" |
В таблице ниже перечислены доступные формы кнопок и их описания:
| Форма | |
|---|---|
rectangular | ![]() ![]() icon , она аналогична square . |
pill | ![]() ![]() icon , то это то же самое, что и circle . |
circle | ![]() ![]() standard типа кнопок, то это то же самое, что и кнопка в форме pill . |
square | ![]() ![]() standard типа кнопок, то она аналогична rectangular . |
data-logo_alignment
Выравнивание логотипа Google. Значение по умолчанию — left . Этот атрибут применяется только к standard типу кнопок. Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-logo_alignment="center" |
В таблице ниже перечислены доступные варианты выравнивания и их описания:
| выравнивание логотипа | |
|---|---|
left | ![]() |
center | ![]() |
ширина данных
Минимальная ширина кнопки в пикселях. Максимальная доступная ширина — 400 пикселей.
Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-width=400 |
локаль данных
Необязательно. Отображайте текст кнопки с использованием указанной локали, в противном случае используйте локаль из учетной записи Google пользователя или настроек браузера. Добавьте параметр hl и код языка в директиву src при загрузке библиотеки, например: gsi/client?hl=<iso-639-code> .
Если этот параметр не задан, используется язык браузера по умолчанию или предпочтения пользователя в рамках сессии Google. Поэтому разные пользователи могут видеть разные версии локализованных кнопок, возможно, с разными размерами.
Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-locale="zh_CN" |
data-click_listener
С помощью атрибута data-click_listener можно определить функцию JavaScript, которая будет вызываться при нажатии кнопки «Войти через Google».
<script>
function onClickHandler(){
console.log("Sign in with Google button clicked...")
}
</script>
.....
<div class="g_id_signin"
data-size="large"
data-theme="outline"
data-click_listener="onClickHandler">
</div>В этом примере при нажатии кнопки «Войти через Google» в консоль выводится сообщение «Кнопка „Войти через Google“ нажата...» .
состояние данных
Это необязательно, поскольку на одной странице может отображаться несколько кнопок «Войти через Google», поэтому вы можете присвоить каждой кнопке уникальную строку. Эта же строка будет возвращена вместе с токеном ID, что позволит определить, какую кнопку пользователь нажал для входа.
Дополнительную информацию см. в следующей таблице:
| Тип | Необходимый | Пример |
|---|---|---|
| нить | Необязательный | data-state="button 1" |
Интеграция на стороне сервера
Ваши серверные конечные точки должны обрабатывать следующие HTTP POST запросы.
Конечная точка обработчика токенов идентификации
Конечная точка обработчика ID-токена обрабатывает ID-токен. В зависимости от статуса соответствующей учетной записи вы можете выполнить вход пользователя и либо перенаправить его на страницу регистрации, либо на страницу привязки учетной записи для получения дополнительной информации. Клиенты ДОЛЖНЫ игнорировать нераспознанные параметры ответа.
Пример запроса к вашей конечной точке авторизации:
POST /login HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: g_csrf_token=<RANDOM_STRING>
Host: www.example.com
credential=<JWT_ENCODED_ID_TOKEN>&g_csrf_token=<RANDOM_STRING>
HTTP POST запрос содержит следующую информацию:
| Формат | Имя | Описание |
|---|---|---|
| Печенье | g_csrf_token | Случайная строка, изменяющаяся при каждом запросе к конечной точке авторизации, указанной параметром data-login_uri , должна совпадать со значением в параметре запроса g_csrf_token . |
| Параметр запроса | g_csrf_token | Случайная строка, изменяющаяся при каждом запросе к конечной точке авторизации, указанной в параметре data-login_uri , должна совпадать со значением cookie-файла g_csrf_token . |
| Параметр запроса | credential | Закодированный JWT-токен, выдаваемый компанией Google. |
| Параметр запроса | select_by | Способ входа пользователя в систему. |
| Параметр запроса | state | Этот параметр определяется только тогда, когда пользователь нажимает кнопку «Войти через Google» для авторизации и указан атрибут state кнопки. |
учетные данные
После декодирования токен ID будет выглядеть следующим образом:
header { "alg": "RS256", "kid": "f05415b13acb9590f70df862765c655f5a7a019e", // JWT signature "typ": "JWT" } payload { "iss": "https://accounts.google.com", // The JWT's issuer "nbf": 161803398874, "aud": "314159265-pi.apps.googleusercontent.com", // Your server's client ID "sub": "3141592653589793238", // The unique ID of the user's Google Account "hd": "gmail.com", // If present, the host domain of the user's GSuite email address "email": "elisa.g.beckett@gmail.com", // The user's email address "email_verified": true, // true, if Google has verified the email address "azp": "314159265-pi.apps.googleusercontent.com", "name": "Elisa Beckett", // If present, a URL to user's profile picture "picture": "https://lh3.googleusercontent.com/a-/e2718281828459045235360uler", "given_name": "Eliza", "family_name": "Beckett", "iat": 1596474000, // Unix timestamp of the assertion's creation time "exp": 1596477600, // Unix timestamp of the assertion's expiration time "jti": "abc161803398874def" }
Клиенты ОБЯЗАНЫ игнорировать непризнанные претензии по JWT.
sub поле является глобально уникальным идентификатором для учетной записи Google. Используйте sub поле только в качестве идентификатора пользователя, поскольку оно уникально для всех учетных записей Google и никогда не используется повторно.
Используя поля email , email_verified и hd вы можете определить, является ли адрес электронной почты хостинг-провайдером Google и авторитетным источником информации для этого адреса. В случаях, когда авторитетным источником является Google, подтверждается, что пользователь является законным владельцем учетной записи.
Примеры случаев, когда Google является авторитетным источником информации:
-
emailприсутствует суффикс@gmail.com, это учетная запись Gmail. -
email_verifiedимеет значение true, аhdустановлен, это учетная запись Google Workspace.
Пользователи могут зарегистрировать учетные записи Google без использования Gmail или Google Workspace. Если email не содержит суффикса @gmail.com и отсутствует hd , Google не является авторитетным источником, и для подтверждения пользователя рекомендуется использовать пароль или другие методы проверки подлинности. email_verified также может быть истинным, поскольку Google первоначально подтвердил пользователя при создании учетной записи Google, однако право собственности на сторонний почтовый аккаунт могло с тех пор измениться.
Поле exp показывает время истечения срока действия токена на стороне вашего сервера . Для токена ID, полученного при входе через Google, это один час. Вам необходимо подтвердить токен до истечения срока действия. Не используйте exp для управления сессиями. Истекший токен ID не означает, что пользователь вышел из системы. За управление сессиями пользователей отвечает ваше приложение.
g_csrf_token
Токен защиты от подделки запросов. Это токен защиты от межсайтовой подделки запросов (CSRF), созданный библиотекой gsi/client . Случайное значение включается как в качестве Cookie, так и в качестве параметра запроса в теле POST-запроса. Если эти два значения не совпадают при обработке запроса на вашем сервере, запрос следует считать недействительным.
select_by
В следующей таблице перечислены возможные значения для поля select_by . Тип используемой кнопки, а также состояние сессии и согласия используются для установки значения.
Пользователь нажал либо кнопку «Вход в одно касание» или «Вход через Google», либо воспользовался бесконтактным автоматическим процессом входа в систему.
Была найдена уже существующая сессия, или пользователь выбрал и вошел в учетную запись Google, чтобы создать новую сессию.
Перед тем как передать учетные данные токена идентификации вашему приложению, пользователь либо
- нажали кнопку «Подтвердить», чтобы дать согласие на передачу учетных данных, или
- ранее дал согласие и использовал функцию «Выбрать учетную запись», чтобы выбрать учетную запись Google.
Значение этого поля устанавливается на один из следующих типов:
| Ценить | Описание |
|---|---|
auto | Автоматический вход пользователя с существующей сессией, который ранее дал согласие на обмен учетными данными. Применяется только к браузерам, не поддерживаемым FedCM. |
user | Пользователь, у которого уже была запущена сессия и который ранее дал согласие, нажал кнопку «Продолжить как» в одно касание, чтобы поделиться учетными данными. Применяется только к браузерам, не поддерживаемым FedCM. |
fedcm | Пользователь нажал кнопку «Продолжить как» в одно касание, чтобы поделиться учетными данными с помощью FedCM. Это относится только к браузерам, поддерживаемым FedCM. |
fedcm_auto | Автоматический вход пользователя с существующей сессией, который ранее дал согласие на обмен учетными данными, с помощью FedCM One Tap. Применяется только к браузерам, поддерживаемым FedCM. |
user_1tap | Пользователь, у которого уже была запущена сессия, нажал кнопку «Продолжить как» одним касанием, чтобы дать согласие и поделиться учетными данными. Применимо только к Chrome версии 75 и выше. |
user_2tap | Пользователь, у которого не было существующей сессии, нажал кнопку «Продолжить как» в одно касание, чтобы выбрать учетную запись, а затем нажал кнопку «Подтвердить» во всплывающем окне, чтобы дать согласие и поделиться учетными данными. Применимо к браузерам, отличным от Chromium. |
itp | Пользователь, ранее давший согласие, нажал кнопку «Один клик» в браузерах ITP . |
itp_confirm | Пользователь, не давший согласия, нажал кнопку «Один клик» в браузерах ITP и затем кнопку «Продолжить», чтобы дать согласие и поделиться учетными данными. |
btn | Пользователь, ранее давший согласие, нажал кнопку «Войти через Google» и выбрал учетную запись Google в разделе «Выберите учетную запись», чтобы поделиться учетными данными. |
btn_confirm | Пользователь, не давший согласия, нажал кнопку «Войти через Google», а затем кнопку «Продолжить», чтобы дать согласие и поделиться учетными данными. |
состояние
Этот параметр определяется только тогда, когда пользователь нажимает кнопку «Войти через Google» для авторизации, и указан атрибут data-state нажатой кнопки. Значение этого поля совпадает со значением, указанным в атрибуте data-state кнопки.
Поскольку на одной странице может отображаться несколько кнопок «Войти через Google», вы можете присвоить каждой кнопке уникальную строку. Таким образом, вы можете использовать этот параметр state для определения того, какую кнопку пользователь нажал для входа в систему.
конечная точка обработчика учетных данных пароля
Конечная точка обработчика учетных данных паролей обрабатывает учетные данные паролей, полученные встроенным менеджером учетных данных.
HTTP POST запрос содержит следующую информацию:
| Формат | Имя | Описание |
|---|---|---|
| Печенье | g_csrf_token | Случайная строка, изменяющаяся при каждом запросе к конечной точке авторизации, указанной параметром data-native_login_uri , должна совпадать со значением в параметре запроса g_csrf_token . |
| Параметр запроса | g_csrf_token | Случайная строка, изменяющаяся при каждом запросе к конечной точке авторизации, указанной в параметре data-native_login_uri , должна совпадать со значением cookie-файла g_csrf_token . |
| Параметр запроса | email | Этот идентификационный токен выдает Google. |
| Параметр запроса | password | Как выбираются учетные данные. |




















