2015-11-06 4 views
8

Я знаю, что это слегка открытый или неопределенный вопрос, но любая помощь о том, как действовать, будет высоко оценена.Управление сессиями с использованием Alamofire

Каков наилучший способ реализации управления сеансом с использованием Alamofire.

Use case: Я использую приложение iOS, для которого требуется аутентификация пользователя (требуется, чтобы пользователь был включен в систему) для большинства функций. Каков наилучший способ реализовать это с помощью alamofire.

я могу думать о следующем:

[1] Сделать запрос входа в систему. [2] Получить сессионный файл cookie. [3] Сохраните файл cookie и используйте его для последующих запросов.

Каков наилучший способ сделать [3], т. Е. Сохранить файл cookie для последующих запросов.

Также, как лучший способ сделать [1], когда пользователь, перемещая приложение, натыкается/нажимает на функцию, требующую аутентификации пользователя.

ответ

1

По-моему, я использовал тот же экземпляр менеджера для всех запросов:

let cfg = NSURLSessionConfiguration.defaultSessionConfiguration() 
let cooks = NSHTTPCookieStorage.sharedHTTPCookieStorage() 
var manager: Manager 

С ответом авторизации, разработчик API должен Set-Cookie в заголовок. И вам просто нужно нормально звонить другим запросам.

Если вам нужно работать с одноразовым маркером входа в систему, вы можете использовать этот код, чтобы поместить его в заголовке все запросы в

var authToken : String? { 
    didSet { 
     if let _ = authToken { 
      self.cfg.HTTPAdditionalHeaders = ["auth_token": authToken!] 
      self.manager = Manager(configuration: cfg) 
     }else{ 
      self.cfg.HTTPAdditionalHeaders?.removeValueForKey("auth_token") 
      self.manager = Manager(configuration: cfg) 
     } 
    } 
} 

Это просто мое мнение. Есть много способов сделать это лучше. Спасибо.

+0

Спасибо! Это было полезно. – user462455