2015-11-06 38 views
8

我知道這是一個稍微開放式/模糊的問題,但如何進行的任何幫助將受到高度讚賞。使用Alamofire進行會話管理

使用Alamofire實現會話管理的最佳方式是什麼?

用例:我實現了一個iOS應用程序,該應用程序需要用戶身份驗證(要求用戶登錄)以獲取大多數功能。使用alamofire實現該效果的最佳方式是什麼?

我可以認爲以下的:

[1]製作一個登錄請求。 [2]獲取會話cookie。 [3]保存cookie並將其用於後續請求。

做什麼是最好的方式[3],即保存後續請求的cookie。

當用戶在瀏覽應用程序時發現/點擊需要用戶身份驗證的功能時,最好的方法是做[1]。

回答

1

在我看來,我以前管理器相同的情況下爲所有請求:

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

隨着登錄響應,API開發人員應該設置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