Я разочарован OAuth-API Google. Мой вариант использования просто не покрывается доступными конечными точками. Я надеюсь, что кто-то со знанием API OAuth Google Drive может посоветовать мне.
Я разрабатываю дополнение для браузера . Это означает, что мое приложение:
- Без сервера. Я не хочу поддерживать домен и веб-сервер для этого проекта.
- Открытый исходный код, поэтому тривиально извлекать любые секреты, упакованные с кодом, для любого, кто может установить надстройку. Поэтому любая информация, распространяемая с помощью надстройки, должна считаться общедоступной c.
Я хочу добавить интеграцию с Google Drive, чтобы пользователь мог сохранять данные конфигурации приложения на диске для синхронизации c между устройствами (API WebExtensions browser.storage.sync
недостаточно, потому что данных слишком много). Мои требования:
- Пользователю не нужно входить в Google Диск чаще, чем, скажем, один раз в месяц. Конечно, не ежечасно, или каждый раз, когда они используют надстройку.
- Это должно работать на нескольких устройствах для одной и той же учетной записи Google Диска.
- Если Алиса разрешает MyApp доступ к alice@google.com, и Ева извлекает идентификатор / секретный идентификатор клиента OAuth или другую информацию из исходного кода MyApp, и у Евы не должно быть доступа к alice@google.com без знания пароля Алисы для Google.
Ни один из потоков, описанных в Сайт Google, кажется, соответствует этим двум требованиям. Я попробовал на стороне сервера , так как думал, что токены refre sh будут соответствовать требованию (1), но кажется, что Google выдает только токен refre sh в первый раз . Я прошу один. После этого я просто получаю токен недолгого (один час) доступа. Таким образом, это нарушает требование (2), поскольку какое бы устройство ни обращалось к Google первым, оно будет единственным с маркером refre sh.