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

  • тип содержимого файла zip для http request
  • Перенаправление основного агента iOS MDM
  • Недействительный сертификат, данные формы и данные заголовка HTTP с помощью Alamofire
  • ASIHTTPRequest скачать: Должен ли я запрашивать большой файл или много файлов небольшого размера?
  • Автоматическое исключение ATS для * .apple.com?
  • UIWebView, захватывающий заголовки ответов
  • Проверьте, есть ли у URL-адреса http: // префикс
  • Создайте X-Apple-ActionSignature
  • Android-API-запросы
  • Запрос POST с простой строкой в ​​корпусе с Alamofire
  • Как отправить строку, не связанную с английским юникодом, с помощью HTTP-заголовка?
  • Interesting Posts

    Ссылка на контроллер вида segue source view

    Передача класса в качестве параметра и создание экземпляра объекта с использованием этого класса

    iBeacons, находящиеся в фоновом режиме, иногда имеют задержку

    Возможно ли создать несколько сертификатов SSL для поставщиков, отправляющих APN в одно и то же приложение?

    SFSafariViewController и местоположение

    Кнопка обновления Safari iOS. Могу ли я использовать его?

    Как вы можете запросить разрешения на фотогаллерею в iOS во второй раз

    Частичная завивка страницы с помощью жесты pan, например, в UIPageViewController

    Лучший способ вызвать функцию внутри другого класса? (Swift)

    Попытка реализовать наследование делегирования

    Получить индексную таблицу UITextField в UITableViewCell с помощью Swift

    Как сохранить анимацию iOS гладкой со многими областями

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

    Захват изображения / скриншота SCNView с использованием SCNNode: drawViewHierarchyInRect afterScreenUpdates не работает

    iOS – создание экрана SpringBoard

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