Справочник по входу с помощью Google HTML API

Эта справочная страница описывает API атрибутов HTML-данных Sign In With Google. Вы можете использовать API для отображения подсказки One Tap или кнопки Sign In With Google на своих веб-страницах.

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

Вы можете поместить атрибуты данных Sign In With Google в любые видимые или невидимые элементы, такие как <div> и <span> . Единственное требование — чтобы идентификатор элемента был установлен на g_id_onload . Не помещайте этот идентификатор в несколько элементов.

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

В следующей таблице перечислены атрибуты данных с их описаниями:

Атрибут
data-client_id Идентификатор клиента вашего приложения
data-auto_prompt Дисплей Google One Tap.
data-auto_select Включает автоматический выбор в Google One Tap.
data-login_uri URL вашей конечной точки входа
data-callback Имя функции обработчика токена JavaScript ID
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 Пропускает одно нажатие, если указанный файл cookie имеет непустое значение.
data-nonce Случайная строка для идентификационных токенов
data-context Заголовок и слова в подсказке One Tap
data-moment_callback Имя функции прослушивателя уведомлений о состоянии пользовательского интерфейса
data-state_cookie_domain Если вам необходимо вызвать One Tap в родительском домене и его поддоменах, передайте родительский домен в этот атрибут, чтобы использовался один общий файл cookie.
data-ux_mode UX-поток кнопки «Войти через Google»
data-allowed_parent_origin Источники, которым разрешено встраивать промежуточный iframe. One Tap работает в режиме промежуточного iframe, если этот атрибут присутствует.
data-intermediate_iframe_close_callback Переопределяет поведение промежуточного iframe по умолчанию, когда пользователи вручную закрывают One Tap.
data-itp_support Включает улучшенный One Tap UX в браузерах ITP.
data-login_hint Пропустите выбор учетной записи, предоставив пользователю подсказку.
data-hd Ограничить выбор аккаунтов по домену.
data-use_fedcm_for_prompt Разрешите браузеру управлять запросами на вход пользователя в систему и выступать посредником в процессе входа между вашим сайтом и Google.
data-use_fedcm_for_button Это поле определяет, следует ли использовать UX кнопки FedCM в Chrome (настольный компьютер M125+ и Android M128+). По умолчанию — false .
data-button_auto_select Включать ли опцию автоматического выбора для потока кнопок FedCM. Если включено, возвращающиеся пользователи с активным сеансом Google будут автоматически входить в систему, минуя запрос Account Chooser. Значение по умолчанию — false .

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

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

данные-client_id

Этот атрибут — идентификатор клиента вашего приложения, который находится и создается в консоли Google Cloud. Дополнительную информацию см. в следующей таблице:

Тип Необходимый Пример
нить Да data-client_id="CLIENT_ID.apps.googleusercontent.com"

данные-авто_промпт

Этот атрибут определяет, отображать One tap или нет. Значение по умолчанию — true . Google One tap не отображается, если это значение — false . Дополнительную информацию см. в следующей таблице:

Тип Необходимый Пример
булев Необязательный data-auto_prompt="true"

данные-авто_выбор

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

Тип Необходимый Пример
булев Необязательный data-auto_select="true"

данные-login_uri

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

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

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

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

Дополнительную информацию смотрите в следующей таблице:

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

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

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

POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded

credential=ID_TOKEN

данные-обратный вызов

Этот атрибут — имя функции JavaScript, которая обрабатывает возвращаемый токен ID. Дополнительную информацию см. в следующей таблице:

Тип Необходимый Пример
нить Требуется, если data-login_uri не задан. data-callback="handleToken"

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

  • Атрибут data-login_uri необходим для режима redirect кнопки «Войти через Google», который игнорирует атрибут data-callback .

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

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

данные-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"

данные-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"

данные-отмена_при_отводе_снаружи

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

Тип Необходимый Пример
булев Необязательный data-cancel_on_tap_outside="false"

data-prompt_parent_id

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

Тип Необходимый Пример
нить Необязательный data-prompt_parent_id="parent_id"

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

Тип Необходимый Пример
нить Необязательный data-skip_prompt_cookie="SID"

данные-nonce

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

Тип Необходимый Пример
нить Необязательный data-nonce="biaqbm70g23"

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

данные-контекст

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

Дополнительную информацию смотрите в следующей таблице:

Тип Необходимый Пример
нить Необязательный data-context="use"

В следующей таблице перечислены все доступные контексты и их описания:

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

data-moment_callback

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

Дополнительную информацию смотрите в следующей таблице:

Тип Необходимый Пример
нить Необязательный data-moment_callback="logMomentNotification"

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

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

Тип Необходимый Пример
нить Необязательный data-state_cookie_domain="example.com"

данные-ux_mode

Этот атрибут задает поток UX, используемый кнопкой Sign In With Google. Значение по умолчанию — popup . Этот атрибут не влияет на One Tap UX. Дополнительную информацию см. в следующей таблице:

Тип Необходимый Пример
нить Необязательный data-ux_mode="redirect"

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

Режим UX
popup Выполняет UX-процесс входа в систему во всплывающем окне.
redirect Выполняет UX-процесс входа в систему путем перенаправления на всю страницу.

данные-разрешенные_родительские_источники

Источники, которым разрешено встраивать промежуточный 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 завершится ошибкой и будет остановлена.

Также поддерживаются подстановочные префиксы. Например, "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 UI. Поведение по умолчанию — немедленное удаление промежуточного iframe из DOM.

Поле data-intermediate_iframe_close_callback действует только в промежуточном режиме iframe. И оно влияет только на промежуточный iframe, а не на iframe One Tap. Пользовательский интерфейс One Tap удаляется до вызова обратного вызова.

Тип Необходимый Пример
функция Необязательный data-intermediate_iframe_close_callback="logBeforeClose"

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

данные-itp_support

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

Тип Необходимый Пример
булев Необязательный data-itp_support="true"

data-login_hint

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

Более подробную информацию см. в документации OpenID Connect для login_hint .

Тип Необходимый Пример
Строка. Может быть адресом электронной почты или значением sub из токена ID. Необязательный data-login_hint="[email protected]"

данные-hd

Если у пользователя несколько учетных записей, и он должен входить только с помощью своей учетной записи Workspace, используйте это, чтобы предоставить Google подсказку доменного имени. В случае успеха учетные записи пользователей, отображаемые во время выбора учетной записи, ограничиваются предоставленным доменом. Подстановочное значение: * предлагает пользователю только учетные записи Workspace и исключает учетные записи потребителей ([email protected]) во время выбора учетной записи.

Более подробную информацию см. в документации OpenID Connect для hd .

Тип Необходимый Пример
Строка. Полное доменное имя или *. Необязательный data-hd="*"

данные-use_fedcm_for_prompt

Разрешить браузеру управлять запросами на вход пользователя и выступать посредником в процессе входа между вашим сайтом и Google. Значение по умолчанию — false. Для получения дополнительной информации см. страницу Migrate to FedCM .

Тип Необходимый Пример
булев Необязательный data-use_fedcm_for_prompt="true"

данные-использование_fedcm_для_кнопки

Это поле определяет, следует ли использовать UX кнопки FedCM в Chrome (настольный компьютер M125+ и Android M128+). По умолчанию false . Дополнительную информацию см. в следующей таблице:

Тип Необходимый Пример
булев Необязательный data-use_fedcm_for_button="true"

data-button_auto_select

Это поле определяет, следует ли включить опцию автоматического выбора для потока кнопок FedCM. Если эта опция включена, возвращающиеся пользователи с активным сеансом Google будут автоматически входить в систему, минуя запрос Account Chooser. Значение по умолчанию — false . Вам необходимо явно включить функцию автоматического входа с помощью кнопки во время запуска подписки. Дополнительную информацию см. в следующей таблице:

Тип Необходимый Пример
булев Необязательный data-button_auto_select="true"

Элемент с классом "g_id_signin"

Если добавить g_id_signin к атрибуту class элемента, элемент отобразится как кнопка «Войти через Google».

Вы можете отобразить несколько кнопок Sign In With 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
Стандартная кнопка с надписью «Войти через Google»Кнопка со значком без видимого текста
Текст кнопки: «Войти через Google».
signup_with
Стандартная кнопка с надписью «Зарегистрироваться через Google»Кнопка со значком без видимого текста
Текст кнопки: «Зарегистрироваться через Google».
continue_with
Стандартная кнопка с надписью «Продолжить с Google»Кнопка со значком без видимого текста
Текст кнопки: «Продолжить с Google».
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"

В следующей таблице перечислены доступные выравнивания и их описания:

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

ширина данных

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

Дополнительную информацию смотрите в следующей таблице:

Тип Необходимый Пример
нить Необязательный data-width=400

данные-локаль

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

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

Дополнительную информацию смотрите в следующей таблице:

Тип Необходимый Пример
нить Необязательный data-locale="zh_CN"

данные-щелчок_слушатель

С помощью атрибута 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».

данные-состояние

Необязательно, поскольку на одной странице может отображаться несколько кнопок Sign in with Google, вы можете назначить каждой кнопке уникальную строку. Та же строка будет возвращена вместе с токеном ID, так что вы сможете определить, какую кнопку нажал пользователь для входа.

Дополнительную информацию смотрите в следующей таблице:

Тип Необходимый Пример
нить Необязательный data-state="button 1"

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

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

Конечная точка обработчика токена ID

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

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

Формат Имя Описание
Печенье g_csrf_token Случайная строка, которая изменяется при каждом запросе к конечной точке обработчика.
Запросить параметр g_csrf_token Строка, которая совпадает со значением предыдущего cookie-файла, g_csrf_token .
Запросить параметр credential Идентификационный токен, выдаваемый Google.
Запросить параметр select_by Как выбирается удостоверение.
Запросить параметр 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 GSuite email address
  "email": "[email protected]", // 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"
}

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, полученного с помощью Sign In With Google, это один час. Вам необходимо проверить токен до истечения срока действия. Не используйте exp для управления сеансом. Истекший срок действия токена ID не означает, что пользователь вышел из системы. Ваше приложение отвечает за управление сеансом ваших пользователей.

select_by

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

  • Пользователь нажал кнопку «Одно касание» или «Войти через Google» или использовал бесконтактный автоматический процесс входа.

  • Был найден существующий сеанс, или пользователь выбрал и вошел в учетную запись Google, чтобы создать новый сеанс.

  • Перед тем как предоставить вашему приложению учетные данные токена ID, пользователь должен либо

    • нажали кнопку «Подтвердить», чтобы дать свое согласие на передачу учетных данных, или
    • ранее предоставили согласие и использовали функцию «Выбрать учетную запись», чтобы выбрать учетную запись Google.

Значение этого поля устанавливается на один из следующих типов:

Ценить Описание
auto Автоматический вход пользователя с существующим сеансом, который ранее дал согласие на обмен учетными данными. Применимо только к браузерам, не поддерживаемым FedCM.
user Пользователь с существующим сеансом, который ранее предоставил согласие, нажал кнопку One Tap 'Продолжить как', чтобы поделиться учетными данными. Применимо только к браузерам, не поддерживаемым FedCM.
fedcm Пользователь нажал кнопку One Tap 'Продолжить как', чтобы поделиться учетными данными с помощью FedCM. Применимо только к поддерживаемым FedCM браузерам.
fedcm_auto Автоматический вход пользователя с существующим сеансом, который ранее дал согласие на обмен учетными данными с помощью FedCM One Tap. Применимо только к поддерживаемым FedCM браузерам.
user_1tap Пользователь с существующим сеансом нажал кнопку One Tap 'Продолжить как', чтобы предоставить согласие и поделиться учетными данными. Применимо только к Chrome v75 и выше.
user_2tap Пользователь без существующего сеанса нажал кнопку One Tap 'Продолжить как', чтобы выбрать учетную запись, а затем нажал кнопку Подтвердить во всплывающем окне, чтобы предоставить согласие и поделиться учетными данными. Применимо к браузерам, не основанным на Chromium.
btn Пользователь с существующим сеансом, который ранее дал согласие, нажал кнопку «Войти с помощью Google» и выбрал учетную запись Google из меню «Выбрать учетную запись», чтобы поделиться учетными данными.
btn_confirm Пользователь с существующим сеансом нажал кнопку «Войти через Google», а затем кнопку «Подтвердить», чтобы предоставить согласие и поделиться учетными данными.
btn_add_session Пользователь без существующего сеанса, который ранее дал согласие, нажал кнопку «Войти через Google», чтобы выбрать учетную запись Google и поделиться учетными данными.
btn_confirm_add_session Пользователь без существующего сеанса сначала нажал кнопку «Войти через Google», чтобы выбрать учетную запись Google, а затем нажал кнопку «Подтвердить», чтобы дать согласие и поделиться учетными данными.

состояние

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

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

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

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

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

Формат Имя Описание
Печенье g_csrf_token Случайная строка, которая изменяется при каждом запросе к конечной точке обработчика.
Запросить параметр g_csrf_token Строка, которая совпадает со значением предыдущего cookie-файла, g_csrf_token .
Запросить параметр email Это идентификационный токен, который выдает Google.
Запросить параметр password Как выбирается удостоверение.