Чтобы добавить на свой сайт кнопку «Войти через Google» или запрос на автоматический вход в один клик, вам сначала необходимо:
- получить идентификатор клиента OAuth 2.0.
- Настройка фирменной символики и параметров OAuth.
- загрузите клиентскую библиотеку Google Identity Services и
- При желании можно настроить политику безопасности контента и
- Обновить политику открытия междоменных запросов.
Получите свой идентификатор клиента Google API.
Чтобы включить Google Identity Services на вашем веб-сайте, сначала необходимо настроить идентификатор клиента Google API. Для этого выполните следующие шаги:
- Откройте страницу «Клиенты» в консоли Google Cloud.
- Создайте или выберите проект Cloud Console. Если у вас уже есть проект для кнопки «Войти через Google» или Google One Tap, используйте существующий проект и идентификатор веб-клиента. При создании производственных приложений может потребоваться несколько проектов ; повторите оставшиеся шаги этого раздела для каждого управляемого вами проекта.
- Нажмите «Создать клиента» и в поле «Тип приложения» выберите «Веб-приложение» , чтобы создать новый идентификатор клиента. Чтобы использовать существующий идентификатор клиента, выберите один из типов «Веб-приложение» .
Добавьте URI вашего веб-сайта в список разрешенных источников JavaScript . URI включает только схему и полное имя хоста. Например,
https://www.example.com.При желании учетные данные могут быть возвращены с помощью перенаправления на размещенную вами конечную точку, а не через обратный вызов JavaScript. В этом случае добавьте ваши URI перенаправления в раздел «Авторизованные URI перенаправления» . URI перенаправления включают схему, полное имя хоста и путь и должны соответствовать правилам проверки URI перенаправления . Например,
https://www.example.com/auth-receiver.
Включите идентификатор клиента в ваше веб-приложение, используя поля data-client_id или client_id .
Настройте экран согласия OAuth.
Как вход через Google, так и аутентификация одним касанием включают в себя экран согласия, который информирует пользователей о приложении, запрашивающем доступ к их данным, о том, какие данные запрашиваются и какие условия применяются.
- Откройте страницу «Брендинг» в разделе «Платформа аутентификации Google» в консоли Cloud Console.
- Если появится запрос, выберите только что созданный вами проект.
На странице «Брендинг» заполните форму и нажмите кнопку «Сохранить».
Название приложения: Название приложения, запрашивающего согласие. Название должно точно отражать суть вашего приложения и соответствовать названию приложения, которое пользователи видят в других местах.
Логотип приложения: это изображение отображается на экране согласия, чтобы помочь пользователям распознать ваше приложение. Логотип отображается на экране согласия «Вход через Google» и в настройках учетной записи , но не отображается в диалоговом окне «Одно касание».
Адрес электронной почты службы поддержки: отображается на экране согласия для службы поддержки пользователей и администраторам Google Workspace, оценивающим доступ к вашему приложению для своих пользователей. Этот адрес электронной почты отображается пользователям на экране согласия «Вход через Google», когда пользователь щелкает по названию приложения.
Авторизованные домены: Для вашей защиты и защиты ваших пользователей Google разрешает использовать авторизованные домены только приложениям, аутентифицирующимся с помощью OAuth. Ссылки на ваши приложения должны размещаться на авторизованных доменах. Подробнее .
Ссылка на главную страницу приложения: отображается на экране согласия «Вход через Google» и в разделе «Оговорка о соответствии GDPR в одно касание» под кнопкой «Продолжить как». Необходимо разместить приложение на авторизованном домене.
Ссылка на Политику конфиденциальности приложения: отображается на экране согласия на вход через Google и в разделе «Оговорка о соответствии GDPR в одно касание» под кнопкой «Продолжить как». Приложение должно размещаться на авторизованном домене.
Ссылка на Условия использования приложения (необязательно): отображается на экране согласия на вход через Google и в разделе «Оговорка об отказе от ответственности в одно касание, соответствующем GDPR» под кнопкой «Продолжить как». Приложение должно размещаться на авторизованном домене.
Перейдите на страницу «Доступ к данным» , чтобы настроить области действия для вашего приложения.
- Области действия для API Google : Области действия позволяют вашему приложению получать доступ к личным данным пользователей. Для аутентификации достаточно области действия по умолчанию (email, profile, openid), добавлять какие-либо конфиденциальные области действия не нужно. Как правило, рекомендуется запрашивать области действия постепенно , по мере необходимости доступа, а не сразу.
Проверьте «Статус проверки». Если ваше приложение нуждается в проверке, нажмите кнопку «Отправить на проверку», чтобы отправить приложение на проверку. Подробную информацию см. в требованиях к проверке OAuth .
Отображение настроек OAuth во время входа в систему.
Одно касание с использованием FedCM

В Chrome во время подтверждения согласия пользователя отображается домен верхнего уровня Authorized . Поддерживается только использование One Tap в iframe-элементах, расположенных в разных местах, но на одном сайте .
Одно касание без FedCM

Название приложения отображается во время подтверждения согласия пользователя.
Рисунок 1. Настройки согласия OAuth, отображаемые One Tap в Chrome.
Загрузите клиентскую библиотеку
Обязательно загрузите клиентскую библиотеку Google Identity Services на каждой странице, на которой пользователь может войти в систему. Используйте следующий фрагмент кода:
<script src="https://accounts.google.com/gsi/client" async></script>
Вы можете оптимизировать скорость загрузки страниц, если загрузите скрипт с атрибутом async .
Для получения списка методов и свойств, поддерживаемых библиотекой, обратитесь к справочнику по API HTML и JavaScript .
Политика безопасности контента
Хотя политика безопасности контента (CSP) необязательна, её использование рекомендуется для защиты вашего приложения и предотвращения атак межсайтового скриптинга (XSS). Для получения дополнительной информации см. разделы «Введение в CSP» и «CSP и XSS» .
Ваша политика безопасности контента может включать одну или несколько директив, таких как connect-src , frame-src , script-src , style-src или default-src .
Если ваш CSP включает в себя:
- Добавьте директиву
connect-src, указавhttps://accounts.google.com/gsi/, чтобы страница могла загружать родительский URL-адрес для серверных конечных точек Google Identity Services. - Добавьте директиву
frame-src, указавhttps://accounts.google.com/gsi/, чтобы разрешить использование родительского URL-адреса для iframe-элементов кнопок «Вход в один клик» и «Войти через Google». - Добавьте директиву
script-src, указавhttps://accounts.google.com/gsi/client, чтобы разрешить использование URL-адреса библиотеки JavaScript Google Identity Services. - Добавьте в директиву
style-srchttps://accounts.google.com/gsi/style, чтобы разрешить использование URL-адресов таблиц стилей Google Identity Services. - Если используется директива
default-src, она служит резервным вариантом, если не указана ни одна из предыдущих директив (connect-src,frame-src,script-srcилиstyle-src). Добавьтеhttps://accounts.google.com/gsi/, чтобы разрешить странице загружать родительский URL для серверных конечных точек Google Identity Services.
При использовании connect-src избегайте указания отдельных URL-адресов ГИС. Это помогает свести к минимуму ошибки при обновлении ГИС. Например, вместо добавления https://accounts.google.com/gsi/status используйте родительский URL-адрес ГИС https://accounts.google.com/gsi/ .
Этот пример заголовка ответа позволяет Google Identity Services успешно загрузить и выполнить следующие действия:
Content-Security-Policy-Report-Only: script-src
https://accounts.google.com/gsi/client; frame-src
https://accounts.google.com/gsi/; connect-src https://accounts.google.com/gsi/;
Политика открытия междоменных запросов
Для успешного создания всплывающих окон при нажатии кнопки «Войти через Google» и использовании Google One Tap может потребоваться внесение изменений в Cross-Origin-Opener-Policy (COOP).
При включении FedCM браузер напрямую отображает всплывающие окна, и никаких изменений не требуется.
Однако, если FedCM отключен, установите заголовок COOP:
- к
same-originи - include
same-origin-allow-popups.
Неправильная установка заголовка нарушает связь между окнами, что приводит к появлению пустого всплывающего окна или подобным ошибкам.