【问题标题】:Session management using Alamofire使用 Alamofire 进行会话管理
【发布时间】:2016-02-07 03:11:10
【问题描述】:

我知道这是一个稍微开放/含糊的问题,但我们将非常感谢任何有关如何进行的帮助。

使用 Alamofire 实施会话管理的最佳方式是什么。

用例:我实现了一个 iOS 应用程序,该应用程序的大多数功能都需要用户身份验证(需要用户登录)。使用 alamofire 实现该功能的最佳方法是什么。

我能想到以下几点:

[1] 发出登录请求。 [2] 获取会话 cookie。 [3] 保存 cookie 并用于后续请求。

最好的方法是什么 [3],即为后续请求保存 cookie。

当用户在浏览应用程序时绊倒/点击需要用户身份验证的功能时,最好的方法是什么 [1]。

【问题讨论】:

    标签: ios swift session cookies alamofire


    【解决方案1】:

    在我看来,我对所有请求都使用了相同的 Manager 实例:

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

    这只是我的意见。有很多方法可以做得更好。 谢谢。

    【讨论】:

    • 谢谢!这很有用。
    猜你喜欢
    • 2012-12-15
    • 2013-12-18
    • 1970-01-01
    • 2016-04-26
    • 2014-09-21
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多