【问题标题】:Getting error Unsupported Grant type?收到错误不支持的授权类型?
【发布时间】:2017-06-22 08:48:34
【问题描述】:

我无法登录使用 Oath-2 的应用程序并收到 unsupported_grant_type 错误。我正在使用 Alamofire 发布登录数据但无法成功。我在哪里做错了?我无法解决问题。

函数发送反馈()

func sendFeedback(){


        let parameters = [

            "UserName": username_textfield.text! as String,
            "Password": password_textfield.text! as String,
            "grant_type": "Password" as String,
                    ]


        Alamofire.upload(multipartFormData: { multipartFormData in

            for (key, value) in parameters {
                multipartFormData.append((value.data(using: .utf8))!, withName: key)
            }}, to: "http://192.168.100.5:84/Token", method: .post, headers: ["Authorization": "auth_token"],
                encodingCompletion: { encodingResult in
                    switch encodingResult {
                    case .success(let upload, _, _):
                        upload.response { [weak self] response in
                            guard self != nil else {
                                return
                            }
                            debugPrint(response)
//                            self?.view.hideToastActivity()
                            self?.view.makeToast(message: "Send Successfull. !!!")

                        }
                        upload.uploadProgress(queue: DispatchQueue(label: "uploadQueue"), closure: { (progress) in


                        })
                    case .failure(let encodingError):
                        print("errorss:\(encodingError)")
                    }
        })

    }

我的状态码为 400。如何解决此问题?

【问题讨论】:

  • Try "password' (Lowercase) RFC 6749 "本规范定义了四种授权类型——授权码、隐式、资源所有者……。除非另有说明,所有协议参数名称和值都是大小写敏感”
  • 它无法将密码更改为小写

标签: ios post oauth swift3 alamofire


【解决方案1】:

试试这个,这可能对你有帮助

let headers = [
           "Content-Type": "application/x-www-form-urlencoded"
       ]
       let parameters = [

           "UserName": username_textfield.text! as String,
           "Password": password_textfield.text! as String,
           "grant_type": "password",
                   ]
       //        let url = NSURL(string: "http://192.168.100.5:84/Token")!
       Alamofire.request("http://192.168.100.5:84/Token", method: .post, parameters: parameters, encoding:  URLEncoding.httpBody, headers: headers).responseJSON { (response:DataResponse<Any>) in

           switch(response.result) {

           case .success(_):
               if response.result.value != nil{
//                    print(response.result.value ?? )
                   let statusCode = (response.response?.statusCode)!
                   print("...HTTP code: \(statusCode)")
               }
               break

           case .failure(_):
//                print(response.result.error ?? )
               break

           }
       }

【讨论】:

  • @BikeshThakur :-)
猜你喜欢
  • 2017-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多