2015-11-06 25 views
8

Wiem, że jest to pytanie nieco otwarte/niejasne, ale wszelka pomoc dotycząca sposobu postępowania byłaby bardzo cenna.Zarządzanie sesjami za pomocą Alamofire

Jaki jest najlepszy sposób wdrożenia zarządzania sesją za pomocą Alamofire.

Przypadek użycia: Mam zaimplementowaną aplikację iOS, która wymaga uwierzytelnienia użytkownika (wymaga zalogowania się użytkownika) dla większości funkcji. Jaki jest najlepszy sposób realizacji tego przy użyciu alamofire.

mogę myśleć, co następuje:

[1] Zrób żądanie logowania. [2] Pobierz plik cookie sesji. [3] Zapisz plik cookie i użyj go do kolejnych żądań.

Jaki jest najlepszy sposób na wykonanie [3], tj. Zapisanie pliku cookie dla kolejnych żądań.

Co jest najlepszym sposobem na zrobienie [1], gdy użytkownik, nawigując po aplikacji, potyka się/klika na funkcji wymagającej uwierzytelnienia użytkownika.

Odpowiedz

1

Moim zdaniem, użyłem tej samej instancji menedżera dla wszystkich żądań:

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

Z odpowiedzi logowania API deweloper powinien Set-Cookie w nagłówku. Musisz tylko normalnie wywoływać inne żądania.

Jeśli trzeba pracować z jednorazowym zalogowaniu tokena, można użyć tego kodu, aby umieścić go w nagłówku wszystkich zażądać za

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) 
     } 
    } 
} 

To tylko moja opinia. Istnieje wiele sposobów, aby zrobić to lepiej. Dzięki.

+0

Dzięki! To było przydatne. – user462455