Alamofire Basic和Oauth2

时间:2016-02-12 10:40:33

标签: ios swift oauth-2.0 alamofire

我一直在使用Alamofire,它适用于基本身份验证#1

Alamofire.request(.GET, ENDPOINT_URL).authenticate(user:_username, password: _password).responseJSON { response in }

和OAuth2#2

let headers = ["Authorization": "Bearer \(getLoginToken()!)"]

Alamofire.request(.POST, ENDPOINT_URL2, parameters: para, headers: headers,encoding: .JSON ).responseJSON {  response in }

现在我正在将一些API身份验证更改为OAuth2,它将是Basic和OAuth的混合体。问题来自#3

  1. 我首先制作基本身份验证请求,身份验证通过
  2. 我首先制作OAuth2请求,验证通过
  3. 我制作基本身份验证请求和OAuth2请求,基本身份验证的身份验证通过,以及OAuth2身份验证失败。
  4. 调试后,我意识到它仍在发送基本身份验证请求标头,新添加的标头不会反映并更新到Alamofire。

    我有一个调用Alamofire.request()的Singleton APIClient类。当我检查Alamofire类时,事实证明Manager也是一个单例类。我猜它可能是由于上面的单身人士。

    有关如何发送以正确传递标头的任何建议吗?或者如何做Basic Auth& OAuth2一个接一个?

      

    Alamofire:v3.1.2

         

    XCode:7.2.1

         

    IOS:9

1 个答案:

答案 0 :(得分:0)

对于遇到类似问题的人。我将SwiftyHTTP用于基本OAuth,将Alamofire用于OAuth2。

虽然不是一个完美的解决方案,但它的工作正常。