Соблюдение квот API Google с клиентскими приложениями - PullRequest
0 голосов
/ 28 марта 2019

API Google могут иметь ограничения на использование как для каждого пользователя, так и для каждого приложения.Например, бесплатный уровень GMail API ограничен миллиардом дневных квот для всех пользователей вашего приложения.

Это работает для хорошо разработанных серверных приложений, которые могут централизованно обеспечиватьони подчиняются этим ограничениям использования.Однако я не уверен, как это должно работать для клиентских приложений.Как говорится в документации Google ,

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

Эти приложенияпо-прежнему предполагается использовать client_secret и учетные данные, но предполагается, что они не являются конфиденциальными, несмотря на название.Тем не менее, просто сказать, что они не секрет, не предотвращает злоупотребления;пользователь приложения может взять файл учетных данных и использовать его для другой цели, возможно, той, которая использует API больше.Что может сделать разработчик приложения, чтобы не допустить, чтобы люди, занимающиеся этим, прожигали все доступные квоты?

Редактировать для пояснения:

Вариант использования, который вызвал это, является чисто настольным приложением, которое неподключаться к любому сервису, кроме GMail (см. https://github.com/mbrt/gmailctl/issues/48). Если бы не глобальная квота для всех пользователей приложения, не было бы никаких причин беспокоиться об отдельных пользователях вообще; они не подключаются ни к одномусервис, кроме самого GMail.

1 Ответ

0 голосов
/ 28 марта 2019

Вы можете написать серверное приложение (будет работать облачная функция), которое хранит секреты.Клиенты звонят вашей конечной точке с какой-либо формой идентификатора, и вы возвращаете токен доступа.Если у ваших пользователей есть браузер, они могут авторизоваться каждый раз;в противном случае вам нужно будет запросить токен обновления, который вы храните, и использовать его для генерации AT.

...