Документация / Руководства
Пошаговое руководство по входу через Google и Apple
Как создать OAuth-клиент Google, а также Services ID и ключ Apple, которые требует вход на вашем домене, клик за кликом.
Последнее обновление:
Это руководство для администратора аккаунта с white-label. Оно показывает, что нужно создать в Google и в Apple, чтобы ваши клиенты могли пользоваться кнопками Продолжить с Google и Продолжить с Apple на вашем собственном домене. Каждую часть вы делаете один раз. Перейдите ниже к разделу Google или Apple и закончите в Настройки > Вход на вашем домене.
Обоим провайдерам от вас нужны два адреса. Настройки > Вход на вашем домене показывает их для вашего домена, у каждого есть кнопка копирования: всегда копируйте их оттуда и вставляйте, никогда не набирайте вручную, потому что одного неверного символа достаточно, чтобы провайдер отклонил вход. Они выглядят так, только для ориентира:
- JavaScript origin: ваш домен с https впереди и ничего после него (без пути, без завершающего слеша)
- Адрес возврата Google (redirect URI):
<your domain>/gorouter/ai/wl/oauth/google/callback - Адрес возврата Apple (Return URL):
<your domain>/gorouter/ai/wl/oauth/apple/callback
Google и Apple время от времени переименовывают свои меню. Если название ниже не совпадает с тем, что вы видите, ищите самое близкое: шаги остаются теми же.
Google#
Вам нужна учётная запись Google, которую вы контролируете. Базовый вход, который здесь используется, запрашивает только имя, адрес электронной почты и фото профиля клиента (scopes openid, email и profile) и ничего больше.
1. Войдите и выберите проект#
- Откройте Google Cloud Console (console.cloud.google.com) и войдите под своей учётной записью Google.
- В выборе проекта в верхней панели выберите проект или нажмите New project, задайте имя и создайте его. Убедитесь, что выбран именно этот проект, прежде чем продолжить.
2. Настройте экран согласия#
Это экран, который Google показывает вашим клиентам. Он находится в Google Auth Platform.
- Откройте Google Auth Platform и нажмите Get started.
- App information: укажите название приложения, которое узнают ваши клиенты (ваш собственный бренд, а не наш), и адрес электронной почты поддержки.
- Audience: выберите External. Internal пускает только учётные записи вашей собственной организации Google Workspace, что не подходит для клиентов.
- Contact information: укажите адрес электронной почты, на который Google может писать вам по проекту.
- Примите политику по данным пользователей и нажмите Create.
3. Добавьте тестовых пользователей или опубликуйте приложение#
Новое приложение начинает в статусе Testing. В нём Google ограничивает вход адресами, которые вы перечислили, не более 100.
- Чтобы их перечислить, откройте Audience, найдите Test users и добавьте каждый адрес Google, с которого будут входить. Сделайте это для себя и для всех, кто пробует вход до публикации.
- Чтобы войти мог любой клиент, опубликуйте приложение: в Audience переведите статус публикации с Testing на In production кнопкой публикации. Поскольку этот вход использует только базовые scopes
openid,emailиprofile, Google не требует проверки ваших scopes и не показывает клиентам предупреждение о «непроверенном приложении». Google всё же может попросить подтвердить ваш бренд, прежде чем покажет название и логотип приложения на экране согласия: об этом скажет Verification Center в Google Auth Platform.
4. Создайте клиент#
- В Google Auth Platform откройте Clients и нажмите Create client.
- В поле Application type выберите Web application и задайте имя.
- В Authorized JavaScript origins нажмите Add URI и вставьте JavaScript origin, скопированный из Настройки > Вход на вашем домене.
- В Authorized redirect URIs нажмите Add URI и вставьте адрес возврата Google, скопированный оттуда же.
- Нажмите Create.
5. Скопируйте Client ID и Client secret#
Теперь Google показывает Client ID и Client secret. Скопируйте оба сразу. Для нового клиента Google показывает secret только в этот момент, а потом хранит лишь его последние четыре символа. Если вы его потеряете, создайте новый secret на странице клиента.
6. Закончите в настройках#
В Настройки > Вход на вашем домене вставьте Client ID и Client secret в раздел Google, включите Google и сохраните.
Если Google отказывает#
- Консоль не принимает адрес возврата из-за его домена: откройте Branding, найдите Authorized domains и добавьте свой домен, затем добавьте адрес снова.
redirect_uri_mismatchсразу после создания клиента: Google может применять изменение от нескольких минут до нескольких часов. Подождите и попробуйте снова. Если ошибка остаётся, сравните адрес в клиенте с адресом в настройках символ за символом.- Доступ заблокирован только для одного человека: если приложение всё ещё в статусе Testing, добавьте его адрес в Test users или опубликуйте приложение.
Apple#
Нужно платное членство в Apple Developer Program: без него Apple не даст создать эти элементы. Все шаги ниже выполняются в вашей учётной записи Apple Developer (developer.apple.com/account), в разделе Certificates, Identifiers & Profiles.
1. App ID с Sign in with Apple#
Apple связывает сайт с App ID. Если в вашей учётной записи уже есть App ID с включённым Sign in with Apple, используйте его и переходите к следующему шагу. Иначе:
- Откройте Identifiers и нажмите кнопку добавления (+).
- Выберите App IDs, затем тип App и продолжайте.
- Введите описание и bundle ID на свой выбор, например вида
com.yourcompany.signin. - В списке capabilities отметьте Sign in with Apple, затем продолжайте и зарегистрируйте.
2. Создайте Services ID#
- В Identifiers нажмите кнопку добавления (+), выберите Services IDs и продолжайте.
- Введите описание и идентификатор на свой выбор, например
com.yourcompany.signin.web. Этот идентификатор и есть ваш Services ID: запишите его. - Продолжайте и зарегистрируйте, затем откройте новый Services ID в списке.
- Отметьте Sign in with Apple и нажмите Configure.
- В качестве Primary App ID выберите App ID из предыдущего шага.
- В URL сайта добавьте свой домен в Domains and Subdomains, без префикса https, например
app.yourcompany.com. - В Return URLs вставьте адрес возврата Apple, скопированный из Настройки > Вход на вашем домене.
- Нажмите Done, затем Continue, затем Save.
3. Создайте ключ#
- Откройте Keys и нажмите кнопку добавления (+).
- Введите имя ключа, отметьте Sign in with Apple и нажмите рядом Configure.
- Выберите тот же primary App ID и сохраните.
- Продолжайте и зарегистрируйте ключ.
- Нажмите Download и сохраните файл с расширением
.p8. Apple позволяет скачать его только один раз. У primary App ID может быть не больше двух ключей. - Запишите Key ID, показанный для ключа.
4. Найдите Team ID#
Откройте Membership details в своей учётной записи разработчика. Там указан Team ID, десять символов.
5. Закончите в настройках#
В Настройки > Вход на вашем домене укажите в разделе Apple Services ID, Team ID и Key ID, загрузите файл .p8, включите Apple и сохраните.
Полезно знать#
- Apple передаёт имя клиента только при первом входе, позже уже нет.
- Клиент может скрыть свой email. Тогда Apple выдаёт частный адрес пересылки, который пересылает письма на настоящий.
- Чтобы ваши письма доходили до таких адресов пересылки, зарегистрируйте домен или адрес, с которого вы отправляете, в Sign in with Apple for Email Communication: в Certificates, Identifiers & Profiles откройте Services, нажмите рядом Configure и добавьте его в Email Sources. Опубликуйте также запись SPF для этого домена, как просит Apple.
- Если Apple отклоняет вход, проверьте, что домен и адрес возврата в Services ID в точности такие, как показаны в настройках, и что ключ не отозван.
Когда всё готово#
Включайте способ только после того, как заполнены его поля, и сохраняйте. Проверьте его в приватном окне браузера на своём домене. Краткий обзор функции есть в статье Вход на вашем домене через Google, Apple или код по почте.