Контролируйте ежедневное использование API для каждого пользователя

#android #google-cloud-platform

#Android #google-облачная платформа

Вопрос:

Я взял демонстрацию преобразования речи в текст отсюда. Я хочу установить ежедневный лимит вызовов API для каждого пользователя (сеанса пользователя). Есть ли какой-либо собственный способ Android для этого? Я думаю, что это возможно с помощью Firebase, создавая для каждого пользователя сеанс, хотя и не уверен, я прав, но это было бы неудобно.

Разве каждая установка на устройстве не уникальна, я думаю, что, вероятно, существует какое-то собственное решение для управления вызовами API в сеансе пользователя.

На самом деле у меня нет отправной точки, поэтому у меня нет кода, которым можно поделиться.

Ответ №1:

  1. используйте аутентификацию firebase для авторизации пользователей в вашем приложении
  2. используйте задания cron в облаке Google для ежедневного обновления пользовательской квоты
  3. при запросах на ваши API вы можете уменьшить квоту на 1 единицу и отклонить, если есть какой-либо запрос, превышающий квоту

Комментарии:

1. Я пропустил, что это не решение, проблема в том, что облачные конечные точки могут быть отлажены кем угодно, а затем злоупотреблены. Таким образом, уровень облачности сервера должен быть решением, а не решением на стороне клиента. (Я не хочу создавать для этого целый сервер, поэтому я все еще ищу то, что предоставляет Google Cloud).

2. как кто-то мог его взломать? можно вызывать API только от своего имени, и тогда он всегда будет уменьшать их квоту. используйте JWTs для авторизации API

3. запустите приложение с помощью анализатора сетевого трафика, примите интернет-запрос, затем запустите его снова с теми же параметрами

4. это приведет к сокращению квоты пользователя, тогда в чем проблема?

5. @Curcuma_ попытайтесь понять. при каждом запросе их квота будет уменьшена. и в запросе не будет данных о квоте. он будет запрошен из базы данных, когда произойдет запрос, а затем квота будет обновлена в базе данных. так что, если пользователь вызовет api. он ничего не получит, вместо этого он уменьшит свою квоту