Вы можете защитить ресурсы вашего приложения, не относящиеся к Firebase, например, собственные серверные части, с помощью проверки приложений. Для этого вам необходимо выполнить оба следующих действия:
- Измените клиент приложения, чтобы отправлять токен проверки приложения вместе с каждым запросом на серверную часть, как описано на этой странице.
- Измените серверную часть, чтобы при каждом запросе требовался действительный токен проверки приложений, как описано в разделе Проверка токенов проверки приложений из пользовательской серверной части .
Прежде чем вы начнете
Добавьте проверку приложений в свое приложение, используя поставщиков по умолчанию .
Отправка токенов App Check с внутренними запросами
Чтобы гарантировать, что ваши серверные запросы включают действительный токен проверки приложений с неистекшим сроком действия, перед каждым запросом следует вызывать AppCheck::GetAppCheckToken()
. При необходимости библиотека проверки приложений обновит токен.
Получив действительный токен, отправьте его вместе с запросом на серверную часть. Специфика того, как вы это сделаете, зависит от вас, но не отправляйте токены проверки приложений как часть URL-адресов , в том числе в параметрах запроса, так как это делает их уязвимыми для случайной утечки и перехвата. Рекомендуемый подход — отправить токен в пользовательском заголовке HTTP.
Например:
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.
}
}
}