从Swift iOS发出oAuth身份验证请求

时间:2016-03-04 12:10:42

标签: swift curl oauth

如何将此oAuth curl请求转换为swift语法。

curl -X POST -vu clientapp:123456 http://localhost:8080/oauth/token -H "Accept: application/json" -d "password=spring&username=roy&grant_type=password&scope=read%20write&client_secret=123456&client_id=clientapp"

1 个答案:

答案 0 :(得分:3)

我能够通过编写基本64字符串中的用户凭证来实现此目的。

    let parameters = ["password" : "spring", "username" : "roy", "grant_type" : "password",
        "scope" : "read write", "client_secret" : "123456", "client_id" : "clientapp"]

    let str = "clientapp:123456"
    let utf8str = str.dataUsingEncoding(NSUTF8StringEncoding)
    let basic_auth_token = utf8str?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))


    let headers = ["Accept" : "application/json", "Authorization" :"Basic "+basic_auth_token!]
    Alamofire.request(.POST, "http://localhost:8080/oauth/token", parameters: parameters, encoding:.URL, headers: headers)
        .responseJSON { response  in
            print("Response String: \(response.result.value)")                
    }