Разрешить Dropbox API для доступа к моей учетной записи на устройстве пользователя
Как разработчик мобильных устройств, я ищу решение, которое позволит пользователям моего приложения загружать несколько .zip-файлы, которые добавят "модульный" вид моему приложению. Я использовал API Dropbox в другом приложении, чтобы позволить пользователям создавать резервные копии элементов в своей учетной записи, но теперь мне нужно, чтобы пользователь получил доступ к моей учетной записи.
Есть ли способ автоматически аутентифицировать сеанс Dropbox для моей учетной записи или просто подключиться к моей общей папке без участия пользователя заметил?
Следующий Вопрос
Каковы последствия для безопасности жесткого кодирования моих ключей доступа и ключа/секрета приложения в приложении? Я знаю, что довольно просто получить исходный код от an .но что можно сделать с этой информацией?
3 ответа:
Это не является целью API, но вы можете авторизовать маркер доступа для вашего приложения вручную один раз, а затем внедрить и повторно использовать этот маркер доступа программно во всех экземплярах вашего приложения. (Вам нужно быть осторожным, чтобы случайно не отозвать этот маркер доступа.) Есть, вероятно, проблемы безопасности и ограничения скорости с этим методом, хотя, в зависимости от специфики.
Или другой способ использования ссылки, вероятно, будет проще. Просто сделайте ссылку(ы) желаемый (и преобразовать в прямой, Если это необходимо), а затем загрузить из него. (Кроме того, Dropbox, конечно, не CDN, поэтому имейте в виду ограничения пропускной способности .)
Последующий Ответ
Если вы встроите маркер приложения и маркер доступа в приложение, злоумышленник потенциально может извлечь их и затем получить доступ на чтение / запись / удаление (через API) к той части вашего Dropbox, к которой приложение имеет доступ (либо к папке приложения, либо к полному Dropbox в зависимости от вашего API приложение), независимо от каких-либо ограничений, которые обычно пытается применить само приложение. По этой причине вы не захотите использовать этот метод для хранения какой-либо личной информации, например, каких-либо личных пользовательских файлов.
Прошло немного времени, но теперь dropbox позволит вам сгенерировать публичный токен доступа и использовать его внутри вашего кода
Так что да,есть способ разрешить постоянный доступ к API dropbox. нам нужно сгенерировать маркер доступа из настроек приложения (консоль dropbox) и использовать его. Вот что говорит dropbox:
Генерируя маркер доступа, вы сможете выполнять вызовы API для ваш собственный аккаунт, не проходя через поток авторизации. К получение маркеров доступа для других пользователи, используйте стандартный поток OAuth.
Кодовыми словами:
AndroidAuthSession session = buildSession(); mApi = new DropboxAPI<AndroidAuthSession>(session); private AndroidAuthSession buildSession() { AppKeyPair appKeyPair = new AppKeyPair(APP_KEY, APP_SECRET); AndroidAuthSession session = new AndroidAuthSession(appKeyPair, ACCESS_TOKEN); // I guess then you just have to instantiate a DropboxAPI object and you're good to go without the startAuthentication()... endAuthentication() etc. return session; }
И вот мы идем просто использовать mApi, чтобы делать все, что вы хотите
Каковы последствия для безопасности жесткого кодирования моих ключей доступа и ключа/секрета приложения в приложении?
Кто-то с достаточной мотивацией в конечном итоге получит ваши ключи доступа.
Они могли бы сделать все, что вы можете сделать с этой информацией.Я знаю, что довольно просто получить исходный код от an .но что можно сделать с этой информацией?