Справочник по HTML API для функции "Войти с аккаунтом Google"

На этой странице описан API атрибутов данных HTML для функции "Войти с аккаунтом Google", который используется для показа кнопки "Войти с аккаунтом Google" или подсказки One Tap на веб-страницах.

Элемент с идентификатором g_id_onload

Атрибуты данных функции "Войти с аккаунтом Google" можно добавлять в любые видимые или невидимые элементы, например <div> и <span>. Единственное требование – идентификатор элемента должен быть задан как g_id_onload. Не используйте этот идентификатор для нескольких элементов.

Атрибуты данных

В таблице ниже перечислены атрибуты данных и их описания.

Атрибут
data-client_id Идентификатор клиента вашего приложения.
data-color_scheme Цветовая схема, которая применяется к подсказке One Tap.
data-auto_prompt Показывать Google One Tap.
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 элемента контейнера всплывающего окна One Tap.
data-skip_prompt_cookie Пропускает One Tap, если указанный файл cookie имеет непустое значение.
data-nonce Случайная строка для токенов идентификации.
data-essential_claims Дополнительные утверждения, которые нужно включить в токен идентификатора, возвращаемый Google.
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 Включает улучшенный интерфейс One Tap в браузерах с ITP.
data-login_hint Пропустить выбор аккаунта, предоставив подсказку для пользователя.
data-hd Ограничить выбор аккаунтов по домену.
data-use_fedcm_for_prompt Разрешите браузеру управлять предложениями войти в аккаунт и процессом входа между вашим сайтом и Google.
data-use_fedcm_for_button Это поле определяет, следует ли использовать кнопку FedCM UX в Chrome (на компьютерах с M125 и более поздними версиями и на устройствах Android с M128 и более поздними версиями). По умолчанию используется значение false.
data-button_auto_select Включать ли параметр автоматического выбора для процесса кнопки FedCM. Если этот параметр включен, вернувшиеся пользователи с активным сеансом Google будут автоматически входить в систему, минуя окно выбора аккаунта. Значение по умолчанию – false.

Типы атрибутов

В разделах ниже приведены подробные сведения о каждом типе атрибутов и примеры.

data-client_id

Этот атрибут представляет собой идентификатор клиента приложения, который можно найти и создать в консоли Google Cloud. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Да data-client_id="CLIENT_ID.apps.googleusercontent.com"

data-color_scheme

Цветовая схема, которая применяется к подсказке One Tap. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательное поле. По умолчанию используется цветовая схема системы пользователя. data-color_scheme="dark"

В таблице ниже перечислены доступные цветовые схемы и их описания.

Цветовая схема
default Применить цветовую схему по умолчанию, заданную в системе пользователя. В зависимости от его предпочтений это может быть светлая или темная тема.
light Примени светлую цветовую схему.
dark Примени темную цветовую схему.

data-auto_prompt

Этот атрибут определяет, будет ли показываться окно One Tap. Значение по умолчанию – true. Если значение равно false, Google One Tap не показывается. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
Логическое значение Необязательно data-auto_prompt="true"

data-auto_select

Этот атрибут определяет, нужно ли автоматически возвращать токен идентификатора без взаимодействия с пользователем, если только один сеанс Google одобрил ваше приложение. Значение по умолчанию – false. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
Логическое значение Необязательно data-auto_select="true"

data-login_uri

Этот атрибут является URI конечной точки входа.

Значение должно точно соответствовать одному из авторизованных URI перенаправления для клиента OAuth 2.0, который вы настроили в Google Auth Platform, и соответствовать нашим правилам проверки URI перенаправления.

Этот атрибут можно опустить, если текущая страница является страницей входа. В этом случае учетные данные по умолчанию отправляются на эту страницу.

Ответ с учетными данными токена идентификатора отправляется на конечную точку входа, если функция обратного вызова не определена и пользователь нажимает кнопку "Войти с аккаунтом Google" или One Tap или выполняется автоматический вход.

Ваша конечная точка входа должна обрабатывать запросы POST, содержащие параметр credential со значением токена идентификатора в теле.

Подробная информация приведена в таблице ниже.

Тип Необязательно Пример
URL По умолчанию используется URI текущей страницы или указанное вами значение.
Игнорируется, если заданы data-ux_mode="popup" и data-callback.
data-login_uri="https://www.example.com/login"

data-callback

Этот атрибут содержит название функции JavaScript, которая обрабатывает возвращенный токен идентификатора. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Обязательно, если не указано значение data-login_uri. data-callback="handleToken"

Можно использовать один из атрибутов: data-login_uri или data-callback. Это зависит от следующих настроек компонента и режима UX:

  • Атрибут data-login_uri обязателен для кнопки "Войти с аккаунтом Google" в режиме UX redirect, который игнорирует атрибут data-callback.

  • Один из этих двух атрибутов должен быть задан для Google One Tap и кнопки "Войти с аккаунтом Google" в режиме UX popup. Если заданы оба атрибута, приоритет имеет data-callback.

Функции JavaScript в пространстве имен не поддерживаются HTML API. Вместо этого используйте глобальную функцию JavaScript без пространства имен. Например, используйте mylibCallback вместо mylib.callback.

Функции обратного вызова передается объект CredentialResponse в качестве параметра. Подробные сведения о возможных значениях ответа приведены в CredentialResponse.

data-native_login_uri

Этот атрибут представляет собой URL конечной точки обработчика учетных данных пароля. Если вы зададите атрибут data-native_login_uri или data-native_callback, библиотека JavaScript будет использовать встроенный менеджер учетных данных, когда сеанс Google неактивен. Нельзя одновременно задавать атрибуты data-native_callback и data-native_login_uri. Дополнительную информацию можно найти в таблице ниже.

Тип Обязательно? Пример
string Необязательно 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. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно 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

Этот атрибут определяет, нужно ли отменять запрос на вход в одно касание, если пользователь нажимает за пределами окна. Значение по умолчанию: true. Чтобы отключить его, задайте значение false. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
Логическое значение Необязательно data-cancel_on_tap_outside="false"

data-prompt_parent_id

Этот атрибут задает идентификатор DOM элемента контейнера. Если он не задан, запрос One Tap будет показан в правом верхнем углу окна. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-prompt_parent_id="parent_id"

Использует файл cookie для управления показом запроса One Tap. Если файл cookie, указанный в этом атрибуте, имеет непустое значение, запрос не показывается. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-skip_prompt_cookie="SID"

data-nonce

Этот атрибут представляет собой случайную строку, используемую токеном идентификатора для защиты от атак повторного воспроизведения. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-nonce="biaqbm70g23"

Длина одноразового кода ограничена максимальным размером JWT, поддерживаемым вашей средой, а также ограничениями на размер HTTP-запросов в браузере и на сервере.

data-essential_claims

Этот атрибут представляет собой строку, которая используется для запроса дополнительных утверждений, которые должны быть включены в токен идентификатора, возвращаемый Google. Полный список утверждений, принимаемых Google, приведен в разделе Поддерживаемые утверждения.

Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-essential_claims="auth_time, amr"

data-context

Это поле меняет текст заголовка и сообщений, которые показываются в подсказке One Tap. Оно не влияет на браузеры с ITP. Значение по умолчанию – signin.

Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-context="use"

В таблице ниже перечислены все доступные контексты и их описания.

Контекст
signin "Войти в"
signup "Зарегистрироваться в"
use "Использовать"

data-moment_callback

Этот атрибут представляет собой название функции прослушивателя уведомлений о статусе интерфейса запроса. Дополнительную информацию вы найдете в описании типа данных PromptMomentNotification.

Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-moment_callback="logMomentNotification"

Функции JavaScript в пространстве имен не поддерживаются HTML API. Вместо этого используйте глобальную функцию JavaScript без пространства имен. Например, используйте mylibCallback вместо mylib.callback.

Если вам нужно показывать One Tap в родительском домене и его субдоменах, передайте родительский домен в этот атрибут, чтобы использовался один файл cookie с общим состоянием. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-state_cookie_domain="example.com"

data-ux_mode

Этот атрибут задает UX-поток, используемый кнопкой "Войти с аккаунтом Google". Значение по умолчанию – popup. Этот атрибут не влияет на интерфейс One Tap. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-ux_mode="redirect"

В таблице ниже перечислены доступные режимы UX и их описания.

Режим 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 недействительно, инициализация One Tap в режиме промежуточного iframe не будет выполнена.

Также поддерживаются префиксы с подстановочными знаками. Например, "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. Интерфейс One Tap удаляется до вызова обратного вызова.

Тип Обязательно? Пример
function Необязательно data-intermediate_iframe_close_callback="logBeforeClose"

Функции JavaScript в пространстве имен не поддерживаются HTML API. Вместо этого используйте глобальную функцию JavaScript без пространства имен. Например, используйте mylibCallback вместо mylib.callback.

data-itp_support

Это поле определяет, следует ли включить улучшенный интерфейс One Tap в браузерах, поддерживающих Intelligent Tracking Prevention (ITP). Значение по умолчанию – false. Дополнительную информацию можно найти в таблице ниже.

Тип Обязательно? Пример
Логическое значение Необязательно data-itp_support="false"

data-login_hint

Если ваше приложение заранее знает, какой пользователь должен войти в систему, оно может предоставить Google подсказку для входа. Если все пройдет успешно, выбор аккаунта будет пропущен. Допустимые значения: адрес электронной почты или поле sub токена идентификатора.

Дополнительную информацию можно найти в документации по OpenID Connect для login_hint.

Тип Обязательно? Пример
Строка. Это может быть адрес электронной почты или значение поля sub из токена идентификации. Необязательно data-login_hint="elisa.beckett@gmail.com"

data-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 UX в 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 Если задать эту строку, она будет возвращаться вместе с токеном идентификатора.

Типы атрибутов

В разделах ниже приведены сведения о типах атрибутов и примеры.

data-type

Тип кнопки. Значение по умолчанию: standard. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Да data-type="icon"

В таблице ниже перечислены все доступные типы кнопок и их описания.

Тип
standard
Кнопка с текстом или персонализированной информацией.
icon
Кнопка со значком без текста.

data-theme

Тема кнопки. Значение по умолчанию: outline. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-theme="filled_blue"

В таблице ниже перечислены доступные темы и их описания.

Тема Примеры Характеристики
outline
standard-button-white icon-button-white personalized-button-white
Стандартная тема кнопки.
Заливка: #FFFFFF
Обводка: #747775 | 1px | внутри
Шрифт: #1F1F1F | Roboto Medium | 14/20
Персонализированный: #1F1F1F | Roboto | Medium 12/14 | Regular 11/13
filled_blue
Синяя кнопка.
Заливка: #0B57D0
Обводка: #OB57D0 | 1 пкс | внутри
Шрифт: #FFFFFF | Google Sans Medium | 14/20
Персонализированный: #FFFFFF | Roboto | Medium 12/14 | Regular 11/13
filled_black
Черная кнопка с контрастным логотипом.
Заливка: #202124
Обводка: #OB57D0 | 1px | внутри
Шрифт: #FFFFFF | Google Sans Medium | 14/20
Персонализированный: #FFFFFF | Roboto | Medium 12/14 | Regular 11/13
outline_dark
Тема кнопки с черной заливкой.
Заливка: #131314
Обводка: #8E918F | 1px | внутри
Шрифт: #FFFFFF | Google Sans Medium | 14/20
Персонализированный: #FFFFFF | Roboto | Medium 12/14 | Regular 11/13

data-size

Размер кнопки. Значение по умолчанию: large. Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-size="small"

В таблице ниже перечислены доступные размеры кнопок и их описания.

Размер
large
Большая стандартная кнопка Большая кнопка со значком Большая персонализированная кнопка
Большая кнопка.
medium
Средняя стандартная кнопка Кнопка со значком среднего размера
Кнопка среднего размера.
small
Маленькая кнопка входа Маленькая кнопка со значком
Маленькая кнопка.

data-text

Текст кнопки. Значение по умолчанию: signin_with. Текст кнопок со значками, у которых разные атрибуты data-text, визуально не отличается. Единственное исключение – когда текст читается для специальных возможностей экрана.

Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-text="signup_with"

В таблице ниже перечислены доступные тексты кнопок и их описания.

Текст
signin_with
Стандартная кнопка с надписью &quot;Войти с аккаунтом Google&quot;. Кнопка со значком без видимого текста
Текст кнопки – "Войти с аккаунтом Google".
signup_with
Стандартная кнопка с надписью &quot;Зарегистрироваться с аккаунтом Google&quot; Кнопка со значком без видимого текста
Текст кнопки – "Зарегистрироваться с аккаунтом Google".
continue_with
Стандартная кнопка с надписью &quot;Войти с аккаунтом Google&quot; Кнопка со значком без видимого текста
Текст кнопки – "Войти с аккаунтом Google".
signin
Стандартная кнопка с надписью &quot;Войти&quot; Кнопка со значком без видимого текста
Текст кнопки – "Войти".

data-shape

Форма кнопки. Значение по умолчанию: rectangular. Дополнительную информацию можно найти в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-shape="rectangular"

В таблице ниже перечислены доступные формы кнопок и их описания.

Фигура
rectangular
Прямоугольная стандартная кнопка Прямоугольная кнопка со значком Прямоугольная персонализированная кнопка
Прямоугольная кнопка. Если используется для кнопки типа icon, то значение будет таким же, как и для square.
pill
Стандартная кнопка в форме таблетки Кнопка со значком в форме таблетки Персонализированная кнопка в форме таблетки
Кнопка в форме таблетки. Если используется для кнопки типа icon, то значение будет таким же, как и для circle.
circle
Круглая стандартная кнопка Круглая кнопка со значком Круглая персонализированная кнопка
Круглая кнопка. Если используется для кнопки типа standard, то значение будет таким же, как и для pill.
square
Квадратная стандартная кнопка Квадратная кнопка со значком Квадратная персонализированная кнопка
Квадратная кнопка. Если используется для кнопки типа standard, то значение будет таким же, как и для rectangular.

data-logo_alignment

Выравнивание логотипа Google. Значение по умолчанию: left. Этот атрибут применяется только к типу кнопки standard. Дополнительную информацию можно найти в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-logo_alignment="center"

В таблице ниже перечислены доступные варианты выравнивания и их описания.

logo_alignment
left
Стандартная кнопка с логотипом G слева
Выравнивает логотип Google по левому краю.
center
Стандартная кнопка с логотипом G в центре.
Выравнивает логотип Google по центру.

data-width

Минимальная ширина кнопки в пикселях. Максимальная ширина – 400 пикселей.

Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-width=400

data-locale

Необязательное поле. Текст кнопки будет показываться на указанном языке. Если язык не задан, то будет использоваться язык, выбранный в аккаунте Google или настройках браузера пользователя. Добавьте параметр hl и код языка в директиву src при загрузке библиотеки, например gsi/client?hl=<iso-639-code>.

Если правило не настроено, используется язык браузера по умолчанию или язык, выбранный пользователем в сеансе Google. Поэтому разные пользователи могут видеть разные версии локализованных кнопок, возможно, разных размеров.

Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-locale="zh_CN"

data-click_listener

Вы можете определить функцию JavaScript, которая будет вызываться при нажатии кнопки "Войти с аккаунтом Google", используя атрибут data-click_listener.

  <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".

data-state

Необязательный параметр. Поскольку на одной странице может быть несколько кнопок "Войти с аккаунтом Google", вы можете назначить каждой из них уникальную строку. Эта строка будет возвращена вместе с токеном идентификатора, чтобы вы могли определить, какую кнопку нажал пользователь для входа.

Подробная информация приведена в таблице ниже.

Тип Обязательно? Пример
string Необязательно data-state="button 1"

Интеграция на стороне сервера

Конечные точки на стороне сервера должны обрабатывать следующие HTTP-запросы POST.

Конечная точка обработчика токена идентификации

Конечная точка обработчика токена идентификации обрабатывает токен идентификации. В зависимости от статуса аккаунта вы можете выполнить вход пользователя и перенаправить его на страницу регистрации или связывания аккаунтов, чтобы получить дополнительную информацию. Клиенты ДОЛЖНЫ игнорировать нераспознанные параметры ответа.

Пример запроса к конечной точке входа:

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 содержит следующую информацию:

Формат Название Описание
Файл сookie g_csrf_token Случайная строка, которая меняется при каждом запросе к конечной точке входа, указанной в data-login_uri. Должна совпадать со значением в параметре запроса g_csrf_token.
Параметр запроса g_csrf_token Случайная строка, которая меняется при каждом запросе к конечной точке входа, указанной в data-login_uri. Должна соответствовать значению файла cookie g_csrf_token.
Параметр запроса credential Закодированный токен идентификатора JWT, выпущенный Google.
Параметр запроса state Этот параметр определяется, только когда пользователь нажимает кнопку "Войти с аккаунтом Google" и для нее задан атрибут state.

учетка

После декодирования токен идентификатора выглядит следующим образом:

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 Google Workspace email address
  "auth_time": 1748875426,
  "amr": ["mfa", "pwd", "tel"],
  "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 creation time
  "exp": 1596477600, // Unix timestamp of the assertion 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 указано время, до которого вы должны проверить токен на стороне сервера. Для токена идентификации, полученного при входе с аккаунтом Google, этот срок составляет один час. Подтвердите токен до истечения срока его действия. Не используйте exp для управления сеансами. Истечение срока действия токена идентификации не означает, что пользователь вышел из аккаунта. Ваше приложение отвечает за управление сеансами пользователей.

g_csrf_token

Токен состояния для защиты от подделки. Это токен подделки межсайтовых запросов (CSRF), созданный библиотекой gsi/client. Случайное значение включается и в файл cookie, и в параметр запроса в теле полезной нагрузки POST. Если эти два значения не совпадают при обработке запроса на вашем сервере, запрос следует считать недействительным.

штат

Этот параметр определяется, только если пользователь нажимает кнопку "Войти с аккаунтом Google" и у этой кнопки задан атрибут data-state. Значение этого поля совпадает со значением, указанным в атрибуте data-state кнопки.

Поскольку на одной странице может быть несколько кнопок "Войти с аккаунтом Google", вы можете назначить каждой кнопке уникальную строку. Таким образом, вы можете использовать параметр state, чтобы определить, какую кнопку нажал пользователь для входа.

Конечная точка обработчика учетных данных пароля

Конечная точка обработчика учетных данных пароля обрабатывает учетные данные пароля, которые извлекает встроенный менеджер учетных данных.

HTTP-запрос POST содержит следующую информацию:

Формат Название Описание
Файл сookie g_csrf_token Случайная строка, которая меняется при каждом запросе к конечной точке входа, указанной в data-native_login_uri. Должна совпадать со значением в параметре запроса g_csrf_token.
Параметр запроса g_csrf_token Случайная строка, которая меняется при каждом запросе к конечной точке входа, указанной в data-native_login_uri. Должна соответствовать значению файла cookie g_csrf_token.
Параметр запроса email Это токен идентификации, который выдает Google.
Параметр запроса password Как выбираются учетные данные.