Usar o App Check para proteger recursos que não são do Firebase

É possível proteger os recursos do seu app que não são do Firebase, como back-ends auto-hospedados, com o App Check. Para isso, será necessário realizar as ações a seguir:

  • Modifique o cliente do app para enviar um token do App Check junto com cada solicitação para o back-end, conforme descrito nesta página.
  • Modifique seu back-end para exigir um token do App Check válido em todas as solicitações, conforme descrito em Verificar tokens do App Check de um back-end personalizado.

Antes de começar

Adicione o App Check ao seu app usando os provedores padrão.

Enviar tokens do App Check com solicitações de back-end

Para garantir que as solicitações de back-end incluam um token válido e não expirado do App Check, basta preceder cada pedido com uma chamada para AppCheck::GetAppCheckToken(). A biblioteca do App Check vai atualizar o token, se necessário.

Quando você tiver um token válido, envie-o com a solicitação para o back-end. Você decide como fazer isso, mas não envie tokens do App Check como parte dos URLs, inclusive nos parâmetros de consulta, porque isso os torna vulneráveis a vazamentos e interceptações acidentais. A abordagem recomendada é enviar o token em um cabeçalho HTTP personalizado.

Exemplo:

void CallApiExample() {
    firebase_app_check::AppCheck* app_check = firebase::app_check::AppCheck::GetInstance();
    Future<std::string> app_check_future = app_check->GetAppCheckToken(false);
    app_check_future.OnCompletion([&](const Future<std::string>& future_token) {
        if (future_token.result()) {
            // Got a valid App Check token. Include it in your own http calls.
        }
    }
}