API для привязки учетных записей Google

На этой справочной странице описаны предлагаемые Google конечные точки и интерфейсы, которые ваше приложение использует в процессе привязки учетной записи на основе OAuth .

Предварительные требования и стандарты

Для успешного взаимодействия с этими конечными точками Google ваша интеграция должна соответствовать следующим стандартам:

  • OAuth 2.0 : соответствует RFC 6749 .
  • JSON Web Tokens (JWT) : Соответствует RFC 7519 (для упрощенной привязки и RISC).
  • Токены событий безопасности : соответствуют RFC 8417 (для RISC).
  • HTTPS : Все запросы должны осуществляться через защищенное HTTPS-соединение.

URI перенаправления OAuth

Конечная точка, куда ваш сервис перенаправляет браузер пользователя после успешной аутентификации и получения согласия. Параметр пути YOUR_PROJECT_ID — это идентификатор, который вы указываете при регистрации .

  • URL: https://oauth-redirect.googleusercontent.com/r/ YOUR_PROJECT_ID
  • URL песочницы: https://oauth-redirect-sandbox.googleusercontent.com/r/ YOUR_PROJECT_ID

  • Метод: GET (с использованием перенаправления в браузере)

Параметры запроса

При перенаправлении пользователя обратно на сайт Google к URL-адресу необходимо добавить параметры. В зависимости от используемого потока OAuth эти параметры форматируются либо как строка запроса (поток с кодом авторизации), либо как фрагмент URL-адреса (неявный поток).

Параметр Описание
code (Обязательно для потока авторизации по коду) Код авторизации, сгенерированный вашим сервисом.
state (Обязательно) Неизмененное значение состояния, первоначально полученное от Google.
access_token (Необходимо для неявного потока) Долгосрочный токен доступа, сгенерированный вашим сервисом.
token_type (Обязательно для неявного потока) Должен быть bearer .

Ответы об ошибках

Если запрос к URI перенаправления OAuth имеет некорректный формат, вы получите ошибку HTTP 400 Bad Request . Тело ответа будет содержать объект JSON со следующей структурой:

Поле Описание
sendPostBody Определяет, следует ли выполнять перенаправление JavaScript на указанный redirectUri с помощью POST-запроса. В этом случае обычно значение false .
errorMessage Сообщение об ошибке, которое будет отображаться клиенту, если перенаправление не может быть выполнено. Для отсутствующих фрагментов это "A URI fragment or query string must be set."

Ответы об ошибках OAuth 2.0

Если пользователь откажет в согласии или ваш сервис выдаст ошибку, он должен перенаправить пользователя обратно на URI перенаправления OAuth со стандартными параметрами ошибки OAuth 2.0 (например, error=access_denied ). Google обработает эти параметры и отобразит пользователю соответствующее сообщение об ошибке.

RISC API (необязательно)

Используется вашим сервисом для заблаговременного уведомления Google о том, когда пользователь отключает свою учетную запись на вашей платформе с помощью протокола RISC , обеспечивая синхронизацию обеих платформ.

  • URL: https://risc.googleapis.com/v1/events:publish
  • Метод: POST
  • Аутентификация: Требуется токен учетной записи службы Google с соответствующими правами доступа.
  • Content-Type: application/json

Запросы токенов событий безопасности

Токены событий безопасности, используемые для уведомления Google о событиях отзыва токенов, должны соответствовать требованиям, указанным в следующей таблице:

Требовать Описание
iss Заявление эмитента: Это URL-адрес, который вы размещаете, и он передается в Google во время регистрации.
aud Утверждение аудитории: Этот параметр идентифицирует Google как получателя JWT-токена. Необходимо установить значение google_account_linking .
jti JWT ID Claim: Это уникальный идентификатор, который генерируется для каждого токена события безопасности.
iat Дата выдачи токена: это числовое значение NumericDate , указывающее время создания данного токена события безопасности.
toe Время события: это необязательное значение NumericDate , представляющее время аннулирования токена.
exp Заявление о сроке действия: Не включайте это поле, поскольку событие, повлекшее за собой это уведомление, уже произошло.
events Security Events Claim: This is a JSON object, and must include only a single token revocation event containing the following fields:

  • subject_type : Этот параметр должен быть установлен на oauth_token .
  • token_type : Это тип отзываемого токена: access_token или refresh_token .
  • token_identifier_alg : Это алгоритм, используемый для кодирования токена, и он должен быть hash_SHA512_double .
  • token : Это идентификатор отозванного токена.

Для получения дополнительной информации о типах и форматах полей см. JSON Web Token (JWT).

Интерфейс приложения App Flip с функцией «обратного перелистывания».

Для App Flip ваше мобильное приложение должно возвращать код авторизации или токен доступа приложению Google.

Android (результат Intent)

Ваше приложение открывается с помощью Intent. После получения согласия оно завершает работу и возвращает результат в Google. Для получения дополнительной информации см. руководство по реализации для Android .

  • Действие: com.google.android.gms.auth.CODE_AVAILABLE
  • Дополнительные параметры: code , state , access_token , token_type .

Ваше приложение открывает Google, используя либо пользовательскую схему URL-адресов, либо универсальную ссылку HTTPS. Для получения дополнительной информации см. руководство по реализации для iOS .

  • Формат: <return_url>?code=AUTHORIZATION_CODE&state=STATE_STRING