O que é ID da instância?

O ID da instância fornece um ID exclusivo por instância dos seus apps. Você pode implementar o ID da instância para apps Android e iOS, bem como apps/extensões do Chrome.

Principais recursos

Além de fornecer IDs exclusivos para autenticação, o ID da instância pode gerar tokens de segurança para uso com outros serviços. Outros recursos incluem:

Gerar tokens de segurança

O ID da instância fornece uma API simples para gerar tokens de segurança que autorizam terceiros a acessar os recursos gerenciados do servidor do app. Use esses tokens agora para autorizar as mensagens push dos seus apps pelo Google Cloud Messaging.

Verificar a autenticidade do app

Transmita os tokens de ID de instância ao seu servidor e use o serviço de ID da instância para verificar o nome do pacote do app e conferir se ele tem uma assinatura válida. A verificação de tokens com o serviço da nuvem do ID da instância ajuda a identificar apps conhecidos. Para reduzir custos e comunicações de ida e volta redundantes, configure seu servidor para armazenar esses tokens para que a verificação seja necessária apenas uma vez. Em caso de um problema de segurança, seu app pode "deleteTokens" ou o próprio ID da instância e gerar novos. Além disso, o servidor de ID da instância iniciará a atualização do token ou do ID da instância se detectar bugs ou problemas de segurança.

Confirmar se o dispositivo do app está ativo

O servidor do ID da instância pode informar quando o dispositivo em que o aplicativo está instalado foi usado pela última vez. Use esse recurso para decidir se quer manter os dados do app ou enviar uma mensagem push para reengajar seus usuários.

Identificar e rastrear apps

O ID da instância é exclusivo em todas as instâncias do app em todo o mundo. Portanto, o banco de dados pode usá-lo para identificar e rastrear instâncias de apps de maneira exclusiva. O código do lado do servidor pode verificar, por meio do serviço de nuvem ID da instância, se um ID da instância é genuíno e tem o mesmo ID que o app original registrado no servidor. Por questões de privacidade, o app pode excluir um ID de instância para que ele não seja mais associado a nenhum histórico no banco de dados. Na próxima vez que seu app chamar o ID da instância, ele receberá um ID de instância totalmente novo sem relação com o anterior.

Ciclo de vida do ID da instância

  1. O serviço do ID de instância emite um InstanceID quando o app é conectado. O InstanceID é respaldado por um par de chaves públicas/privadas com a chave privada armazenada no dispositivo local e a chave pública registrada no serviço de ID da instância.
  2. O app pode solicitar uma InstanceID nova sempre que necessário usando o método getID(). O app poderá armazená-lo no servidor se você tiver um que seja compatível com ele.
  3. Seu app pode solicitar tokens do serviço de ID da instância, conforme necessário, usando o método getToken() e, como InstanceID, o app também pode armazenar tokens no seu próprio servidor. Todos os tokens emitidos para seu app pertencem ao InstanceID do app.
  4. Os tokens são exclusivos e seguros, mas seu app ou o serviço do ID da instância pode precisar atualizar os tokens no caso de um problema de segurança ou quando um usuário desinstalar e reinstalar o app durante a restauração do dispositivo. Seu app precisa implementar um listener para responder às solicitações de atualização de token do serviço de ID da instância.

Ciclo de vida do ID da instância

Implementação do cliente

O ID da instância é executado no Android e no iOS. Cada um deles exige que você inclua a biblioteca apropriada no seu app cliente. O Android exige o Google Play Services. Você precisará de um ID de projeto gerado pelo Google Developers Console se pretende gerar tokens.

Veja instruções detalhadas nos guias de implementação para Android e iOS.