IOS – проверка подлинности токена в заголовках HTTP

В моей организации используется несколько различных методов аутентификации. Одним из тех, с которыми я боролся, были наши приложения, которые используют Oath2, которые ожидают, что заголовок авторизации будет хранить информацию о токенах в заголовках HTTP. Я могу вручную помещать информацию заголовка авторизации для каждого запроса, но я бы хотел, чтобы эта информация была автоматически заполнена вместо того, чтобы вручную добавлять ее для каждого NSURLSession, NSURLConnection, UIWebView или [UIImage: imageFromUrl]. В документации Apples для класса NSURLConnection и NSURLSession он говорит, что он будет обрабатывать, чтобы обрабатывать различные аспекты> HTTP-протокола для вас, включая заголовок Authentication, и они рекомендуют не изменять это свойство, но, похоже, оно не устанавливается для меня. Как минимум, я ожидал бы, что для объекта NSURLSession мне нужно будет только установить его один раз, обратившись к sharedSession и добавив информацию заголовка через вызов setHTTPAdditionalHeaders, но, похоже, он не хранит информацию в следующий раз, когда я получаю доступ к sharedSession ,

Я там что-то мне не хватает или мне нужно вручную заполнить HTTP-заголовок для всех вызовов?

РЕДАКТИРОВАТЬ:
Ниже приведен фрагмент кода, показывающий, как я пытаюсь установить заголовок для сеанса.

NSURLSession *session = [NSURLSession sharedSession]; NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; id jSONObj = [defaults objectForKey: kTokenInformation]; [config setHTTPAdditionalHeaders:@{@"Authorization": [NSString stringWithFormat:@"Bearer %@",[jSONObj valueForKeyPath:@"access_token"]]}]; session = [NSURLSession sessionWithConfiguration:config]; 

Однако, похоже, что токен присутствует при следующем вызове [NSURLSession sharedSession]. Поэтому сейчас я должен делать это каждый раз, когда я вызываю общий сеанс. Я также не уверен в документации, как вы будете обрабатывать приложения, которые поддерживают несколько сеансов, каждый из которых может потребовать отдельные токены Auth. Любые мысли, что мне не хватает, слышат.

One Solution collect form web for “IOS – проверка подлинности токена в заголовках HTTP”

Посмотрите на NSURLSessionConfiguration .

Например, вы можете создать одноэлементный класс, который предоставляет NSURLSession :

 // Session setup NSString *tokenString = ...; NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; [sessionConfiguration setHTTPAdditionalHeaders:@{ @"X-Auth-Token" : tokenString" }]; self.session = [NSURLSession sessionWithConfiguration:sessionConfiguration]; 

Теперь, каждый раз, когда вам нужно сделать запрос, вы используете свой сеанс:

 // Send Request NSURLSession *session = [[SessionManager sharedManager] session]; [[session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { }] resume]; 

Вот отличный учебник: http://code.tutsplus.com/tutorials/networking-with-nsurlsession-part-1–mobile-21394

  • iOS / Cocoa - NSURLSession - Обработка базовой авторизации HTTPS
  • iOS - данные JSON не работают
  • Swizzling низкоуровневые методы TCP на IOS
  • Ошибка аутентификации HTTP-сертификата из-за неправильного подсчета nonce в iOS 10
  • Alamofire http json request block ui
  • ASIHTTPRequest, запрос отправляется дважды
  • Большая загрузка Base64 в iOS
  • Как отправить значения json post на удаленный сервер и получить результаты с iOS 5?
  • Способ создания HTTP-запросов на Unity iOS?
  • Поддерживает ли IOS NSURLSession HTTP 100-continue?
  • Запрос POST с простой строкой в ​​корпусе с Alamofire
  • Interesting Posts

    iOS Autolayout: Совместить левый край UILabel с горизонтальным центром в контейнере?

    Подтверждение самоподписанного сертификата с использованием AFNetworking

    Как создать траекторию предварительного просмотра в cocos2d / box2d, когда начальная и конечная точки известны, но высота является переменной?

    Как проверить устойчивость данных приложений во время разработки?

    NSPredicate. Невозможно создать SQL для предиката. Интересно, почему?

    Как я могу получить доступ к значениям RGB для UIColor?

    Использование календаря в моем приложении для отслеживания моих событий и синхронизации на календаре Google

    Что делать, если проверка подтверждения покупки iOS не удалась?

    Исключить обновление модуля

    Свойство 'viewController' не найдено на объекте типа 'AppDelegate'

    Не работает телефонная панель cordova phonegap

    UISearchBar не будет скрывать клавиатуру на resignFirstResponder при переходе на другой контроллер представления

    Как определить профиль обеспечения в поиске

    Использовать буфер трафарета с iOS

    iOS APNS Development против производства

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.