我正在开发一个使用OAuth2.0的应用程序: 我正在做的是通过我的app用户通过webview登录,我正在使用这种方法获取代码:
// MARK: - WEbview field delegate
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool
{
print("URL to load--\(request.URLString)")
if(request.URLString.containsString("code="))
{
let urlComponents = NSURLComponents(string: request.URLString)
let queryItems = urlComponents?.queryItems
let param1 = queryItems?.filter({$0.name == "code"}).first
print(param1?.value)
strCode = param1!.value
self.callAPI(self)
return false
}
return true
}
这是我需要在accessstokenAPI中传递的代码
`func callAPI(sender : AnyObject {
let delegate1 = AppDelegate.sharedObj()
print(strCode)
print(delegate1.CLIENT_ID)
print(delegate1.CLIENT_SECRET)
let URLpath :String = "https://office.example.com/oauth/access_token"
let params : [String : AnyObject] = ["client_id" :delegate1.CLIENT_ID! , "client_secret" :delegate1.CLIENT_SECRET! , "code" :strCode! , "redirect_uri" : "google.com"]
print(params)
apiObj.dataWithPost(URLpath, cTag: 0, paramter: params)
GlobelHelper.showLoadingView(self.view!)
}`
所有这些代码都是根据该公司提供的文档 但是我收到了这个错误。
["error": invalid_client, "error_description": Client credentials were not found in the headers or body]
实际上,我不知道这种写法是不是:它在POSTMAN中工作。
任何建议都会非常有用。