2015-11-06 16 views
8

So che questa è una domanda leggermente aperta/vaga, ma qualsiasi aiuto su come procedere sarebbe molto apprezzato.Gestione delle sessioni utilizzando Alamofire

Qual è il modo migliore per implementare la gestione delle sessioni utilizzando Alamofire.

Caso di utilizzo: Ho implementato un'applicazione iOS che richiede l'autenticazione dell'utente (richiede che l'utente effettui l'accesso) per la maggior parte delle funzionalità. Qual è il modo migliore per implementarlo utilizzando alamofire.

mi viene in mente quanto segue:

[1] Fare una richiesta di accesso. [2] Ottieni il cookie di sessione. [3] Salva il cookie e usalo per le richieste successive.

Qual è il modo migliore per fare [3], ad esempio salvare il cookie per le richieste successive.

Inoltre, qual è il modo migliore per fare [1] quando l'utente, durante la navigazione nell'app, inciampa/fa clic su una funzione che richiede l'autenticazione dell'utente.

risposta

1

A mio parere, ho usato stessa istanza di Manager per tutte le richieste:

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

Con risposta login, sviluppatore API dovrebbe Set-Cookie in intestazione. E devi solo chiamare normalmente altre richieste.

Se avete bisogno di lavorare con un tempo di token di accesso, è possibile utilizzare questo codice per dirla nell'intestazione tutto di richiesta

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

E 'solo la mia opinione. Ci sono molti modi per farlo meglio. Grazie.

+0

Grazie! Questo è stato utile. – user462455

Problemi correlati