Я изо всех сил пытаюсь понять, как использовать токены для проверки подлинности Box, чтобы использовать API-интерфейс Box. Я создал поток аутентификации в своем приложении, чтобы я мог сэкономить соответствующие фрагменты (токен доступа, обновить токен и т. Д.) В Keychain. Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я снова открываю приложение, я не могу найти подходящий способ настроить мой BoxOAuth2Session или что-то еще, чтобы повторно использовать сохраненные токены для загрузки файлов в Box. В настоящее время я воссоздаю BoxOAuth2Session с моим идентификатором clientID и секретным и вручную устанавливая значения accessToken, refreshToken и т. Д. На этом сеансе. Я создаю BoxFilesResourceManager, присоединяю этот BoxOAuth2Session и загружаю файл с uploadFileWithInputStream. Этот запрос всегда терпит неудачу с 401. Единственный способ, которым я мог загружать файлы в Box, - сразу после шага входа, используя [BoxSDK sharedSDK] .filesManager. Каков ожидаемый рабочий процесс для воссоздания состояния OAuth для доступа к API?Проверка подлинности iOS для загрузки файлов?
ответ
A BoxOAuth2Session
связан с экземпляром SDK. Когда вы обращаетесь к одиночному одиночному элементу [BoxSDK sharedSDK]
, вы используете экземпляр SDK, который уже подключен со своими BoxOAuth2Session
и экземплярами менеджера. При нормальном использовании мы рекомендуем использовать синглтон sharedSDK
, поэтому вам следует манипулировать BoxOAuth2Session
, прикрепленным к этому SDK.
Один из способов сделать это - попытаться загрузить токен обновления из брелка и установить свойство refreshToken
на OAuth2Session
.
[BoxSDK sharedSDK].OAuth2Session.clientID = @"YOUR_CLIENT_ID";
[BoxSDK sharedSDK].OAuth2Session.clientSecret = @"YOUR_CLIENT_SECRET";
// set up stored OAuth2 refresh token
self.keychain = [[KeychainItemWrapper alloc] initWithIdentifier:REFRESH_TOKEN_KEY accessGroup:nil];
id storedRefreshToken = [self.keychain objectForKey:(__bridge id)kSecValueData];
if (storedRefreshToken)
{
[BoxSDK sharedSDK].OAuth2Session.refreshToken = storedRefreshToken;
}
В SDK автоматически обновляет сеанс OAuth2 и приобрести новый маркер доступа и обновления маркера при следующем вызове API, до тех пор, пока лексема обновления не был аннулирован и не истек. Вы можете пожелать manually trigger a heartbeat call to force a refresh.
Мы собрали a sample app that demonstrates how to store and load refresh tokens using the keychain.
В качестве побочного примечания мы не рекомендуем хранить токен доступа на устройстве, поскольку этот токен является токеном-носителем; потеря этого токена может позволить Мэллори олицетворять пользователей вашего приложения.
- 1. Проверка подлинности загрузки файлов в флеш-загрузках
- 2. Проверка подлинности IOS https
- 3. Антивирусная проверка для загрузки файлов
- 4. Проверка подлинности форм для xml-файлов
- 5. Проверка подлинности с помощью FlickrKit для iOS
- 6. Проверка подлинности Watson iOS SDK
- 7. iOS: проверка подлинности почтового индекса
- 8. Проверка модуля загрузки файлов
- 9. проверка целостности загрузки файлов
- 10. Проверка загрузки файлов PHP
- 11. загрузки файлов проверка жерех
- 12. Grails: проверка загрузки файлов
- 13. Тест загрузки Visual Studio - проверка подлинности Windows
- 14. Проверка подлинности JSon для geni.com
- 15. IOS загрузки файлов
- 16. Проверка подлинности для действий
- 17. Проверка загрузки файлов в PHP
- 18. Копирование файлов по сети (требуется проверка подлинности)
- 19. IOS - проверка подлинности токена в заголовках HTTP
- 20. Проверка загрузки файлов в Struts
- 21. Проверка подлинности Vimeo OAuth2
- 22. Проверка подлинности файлов cookie и несколько доменов
- 23. Проверка подлинности NTLM от клиента ios
- 24. Проверка подлинности HTTP-прокси в iOS 4.3
- 25. Проверка подлинности сертификата клиента в UIWebView iOS
- 26. Проверка подлинности квитанции iOS работает неправильно
- 27. ios 8 + проверка подлинности LiveSDK мое приложение
- 28. GWT RPC Проверка подлинности файлов cookie
- 29. PHP - проверка подлинности стилей PDF-файлов
- 30. Проверка проверка подлинности пользователя с помощью AWS IOS SDK
Спасибо за разъяснение. Однако даже при этом (вход в систему, сохранение токена обновления) SDK постоянно сообщает о следующей ошибке при загрузке файла. Ошибка домена = com.box.sdk.errordomain Код = 20001 «Операция не может быть выполнена. (Com.box.sdk.errordomain error 20001.) – jimt
Этот код ошибки соответствует константе' BoxSDKOAuth2ErrorAccessTokenExpiredOperationCannotBeReenqueued'. Операции с использованием 'NSStream 's (закачки, загрузки и работы с миниатюрами) не могут быть автоматически повторены после обновления, потому что эти потоки не могут быть скопированы. Токены будут обновляться автоматически, но вам придется повторно отправить запрос на загрузку после публикации« BoxOAuth2SessionDidRefreshTokensNotification ». –
Также обратите внимание, что вам нужно будет хранить новый токен обновления каждый раз, когда токены обновляются, поскольку токены обновления являются одноразовыми. –