2015-11-06 19 views
8

これは少し開いた/不明瞭な質問ですが、進め方についての助言は高く評価されます。Alamofireを使用したセッション管理

Alamofireを使用してセッション管理を実装する最良の方法は何ですか。

使用例:ほとんどの機能について、ユーザー認証(ログインする必要があります)が必要なiOSアプリケーションが実装されています。どのようなAlamofireを使用して実装するための最良の方法です。

私は次のように考えることができます:

[1]ログイン要求を行います。 [2]セッションCookieを取得します。 [3]クッキーを保存し、後続の要求に使用します。

[3]を実行する、つまり後続のリクエストにクッキーを保存する最善の方法は何ですか?

また、ユーザーがアプリをナビゲートしているときに、ユーザー認証が必要な機能をつまずく/クリックしたときに、[1]を実行する最善の方法は何ですか。私の意見で

答えて

1

は、私はすべての要求のためのマネージャーの同じインスタンスを使用:

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

ログイン応答では、APIの開発者が設定し、クッキーをすべきヘッダに。そして、あなたは他のリクエストを普通に呼び出す必要があります。

あなたは1回のログイントークンで作業する必要がある場合、あなたはすべてのリクエストのヘッダーに

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