2015-11-06 22 views
8

Ich weiß, dass dies eine leicht offene/vage Frage ist, aber jegliche Hilfe zum weiteren Vorgehen wird sehr geschätzt.Sitzungsverwaltung mit Alamofire

Was ist der beste Weg zur Implementierung der Sitzungsverwaltung mit Alamofire.

Anwendungsfall: Ich bin eine iOS-Anwendung implementiert, die Benutzerauthentifizierung erfordert (Benutzer muss angemeldet sein) für die meisten Funktionen. Was ist der beste Weg, um Alamofire zu implementieren?

kann ich denke an die folgenden:

[1] einen Login-Antrag. [2] Holen Sie sich den Session-Cookie. [3] Speichern Sie den Cookie und verwenden Sie ihn für nachfolgende Anfragen.

Was ist der beste Weg [3], d. H. Das Cookie für nachfolgende Anfragen zu speichern.

Auch das ist der beste Weg [1], wenn der Benutzer beim Navigieren durch die App auf eine Funktion stößt/klickt, die eine Benutzerauthentifizierung erfordert.

Antwort

1

Meiner Meinung nach, habe ich dieselbe Instanz von Manager für alle Anfragen:

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

mit Login-Antwort, API-Entwickler sollten in Header Set-Cookie. Und Sie müssen nur andere Anfragen normalerweise aufrufen.

Wenn Sie mit einmaligen Login-Token arbeiten müssen, können Sie diesen Code verwenden sie die in allen Anforderungsheaders

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

Es ist nur Meinung meine zu setzen. Es gibt viele Möglichkeiten, es besser zu machen. Danke.

+0

Danke! Das war nützlich. – user462455