LoginSignup
27
27

More than 5 years have passed since last update.

AlamofireでBasic認証を事前に(全体に)適用する

Posted at

通常は公式にあるとおり、リクエストごとに認証(authenticate)をいれてリクエストする方法があります。

let user = "user"
let password = "password"

Alamofire.request(.GET, "https://httpbin.org/basic-auth/\(user)/\(password)")
         .authenticate(user: user, password: password)
         .response {(request, response, _, error) in
             println(response)
         }

ただ毎回同じ場合、1箇所に設定しておきたいですよね。
下記のようにAppDelegateに設定可能です。

AppDelegate.swift
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        let user = "user"
        let password = "password"

        let plainString = "\(user):\(password)" as NSString
        let plainData = plainString.dataUsingEncoding(NSUTF8StringEncoding)
        let base64String = plainData?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.allZeros)

        Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = ["Authorization": "Basic " + base64String!]

//以下省略

参考
https://github.com/Alamofire/Alamofire/issues/32

27
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
27