Что такое идентификатор экземпляра?

Идентификатор экземпляра предоставляет уникальный идентификатор для каждого экземпляра ваших приложений. Вы можете реализовать идентификатор экземпляра для приложений Android и iOS , а также приложений/расширений Chrome .

Ключевая особенность

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

Генерация токенов безопасности

Идентификатор экземпляра предоставляет простой API для создания токенов безопасности, которые разрешают третьим лицам доступ к управляемым ресурсам на стороне сервера вашего приложения.

Проверьте подлинность приложения

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

Подтвердите, что устройство приложения активно

Сервер идентификатора экземпляра может сообщить вам, когда устройство, на котором установлено ваше приложение, использовалось в последний раз. Используйте это, чтобы решить, следует ли хранить данные из вашего приложения или отправить push-сообщение для повторного взаимодействия с вашими пользователями.

Идентификация и отслеживание приложений

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

Жизненный цикл идентификатора экземпляра

  1. Служба Instance ID выдает InstanceID , когда ваше приложение подключается к сети. InstanceID поддерживается парой открытого и закрытого ключей, при этом закрытый ключ хранится на локальном устройстве, а открытый ключ зарегистрирован в службе Instance ID.
  2. Ваше приложение может запросить новый InstanceID , когда это необходимо, с помощью метода getID() . Ваше приложение может хранить его на вашем сервере, если у вас есть тот, который поддерживает ваше приложение.
  3. Ваше приложение может при необходимости запрашивать токены у службы Instance ID с помощью метода getToken() , и, как и InstanceID , ваше приложение также может хранить токены на вашем собственном сервере. Все токены, выданные вашему приложению, принадлежат InstanceID приложения.
  4. Токены уникальны и безопасны, но вашему приложению или службе идентификатора экземпляра может потребоваться обновить токены в случае проблемы с безопасностью или когда пользователь удаляет и переустанавливает ваше приложение во время восстановления устройства. Ваше приложение должно реализовать прослушиватель для ответа на запросы обновления токена от службы идентификатора экземпляра.

Жизненный цикл идентификатора экземпляра

Реализация клиента

Идентификатор экземпляра работает как на Android, так и на iOS. Для каждого из них требуется включить соответствующую библиотеку в клиентское приложение. Для Android требуются сервисы Google Play . Вам понадобится идентификатор проекта, сгенерированный консолью разработчиков Google, если вы собираетесь генерировать токены.

Подробные инструкции см. в руководствах по реализации для Android и iOS .