饮食alamofire令牌

问题描述 投票:0回答:1

我正在将Strava添加到iOS应用程序中,Strava使用Auth2.0,每个Strava API调用都需要一个令牌来证明用户已经过身份验证,并且应用程序有权访问API。从用户登录响应中获取特殊“代码”后,我需要与Strava交换以获取令牌。我尝试使用我从登录中获得的“代码”检索令牌,如下所示:

    var headers : HTTPHeaders {
            get {
                return [
                    "Accept": "application/json",
                ]
            }
        }

        let par = 
["client_secret": "671333e8c4a7726a5160adb615b74a428535f86e",
"client_id": "32573",
"code": "4/7wAZ8rA_jMXwponVhwGKuPmCDP4UGuCViojCq-K5KRiZ1CI1Gzqc2TdglTJ7k1DU2wIxH22fNguNNXTfIGpaD8g"] as [String : Any]

        Alamofire.request("https://www.strava.com/oauth/token", method: .post, parameters: par, encoding: JSONEncoding.default, headers: headers)
            .validate()
            .responseJSON { response in
            print("Response -> \(response.debugDescription)")
        }

问题是我总是得到400 Bad请求,如果有人有Strava API的经验或任何我做错的想法请告知。

ios swift oauth-2.0 alamofire strava
1个回答
0
投票

您必须指定grant_type=authorization_code来告诉令牌端点应用程序正在使用authorization code grant type

https://www.strava.com/oauth/token?
    client_id=<YOUR_CLIENT_ID>&
    client_secret=<YOUR_CLIENT_SECRET>&
    code=<AUTHORIZATION_CODE_FROM_STRAVA>&
    grant_type=authorization_code
© www.soinside.com 2019 - 2024. All rights reserved.