Я собираюсь предложить услугу веб-API, которая позволяет пользователям загружать и «арендовать» контент за ежемесячную абонентскую плату. API будет открыт для всех или, возможно, только для отдельных сторон (пока не уверен). Каждый разработчик должен согласиться с лицензией, и они получают ключ разработчика для своей персоны. Каждое программное приложение также будет иметь свой собственный ключ. Тогда конечные пользователи загрузят программное обеспечение, которое будет взаимодействовать с API моей службы. У каждого пользователя также будет ключ для каждого приложения (возможно, с использованием OAuth).
Контент будет кэшироваться при первой загрузке и доступен в автономном режиме только через стороннее приложение, которое кэшировало контент.
Если пользователь отменит свою подписку, я планирую сделать следующее:
- Деактивировать ключ OAuth пользователя для всех приложений.
- Не разрешать учетной записи пользователя загружать новый контент через API (и впоследствии любое программное обеспечение, которое использует API).
Теперь главный вопрос: как мне истечь срок действия контента, если он отменит свою подписку? Если они отменяют, они больше не должны иметь доступ к контенту. Вот идеи, о которых я подумал (некоторые из них являются половинными решениями, еще не полностью реализованными):
- Требуется, чтобы приложения шифровали загруженный контент с помощью ключа OAuth пользователя, делая его доступным только для приложения. Это не позволит большинству пользователей переходить в каталог кэша и просто копировать и хранить файлы.
- Обновляйте ключ пользователя раз в месяц, заставляя контент повторно кэшироваться ежемесячно. Пользователи могут получить доступ к контенту в течение месяца после отмены подписки.
- Периодически требовать приложения для «звонка домой» [к услуге] и проверки прекращения подписки пользователя. Если это так, требуйте в лицензии разработчика API, чтобы приложения истекали кеш. Если выясняется, что приложения не соответствуют требованиям, их ключи (и, возможно, ключи для всех разработчиков), как следствие, деактивируются навсегда.
Одной из основных проблем является то, что некоторые приложения могут явно игнорировать ограничения лицензии. В целом допустимо ли полагаться на приложения, соблюдающие лицензионные ограничения? Плохая идея?
Есть еще идеи? Может быть, способ сделать содержание автоматически истекает через х дней? Что-то другое? Я открыт для нестандартных идей.