2015-11-06 37 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