在 Swift 中找不到使用 Google 客户端库的用户的 serverAuthCode
Cannot find serverAuthCode for user using Google Client Library in Swift
所以我遇到的问题是,我正在尝试使用带有 Google API 客户端库的客户端身份验证对 Azure 进行身份验证。我可以获得刷新、访问和 ID 令牌,但 serverAuthCode 是 nil
。我需要 serverAuthCode 才能创建调用 Azure 身份验证端点的 HTTP 请求。 iOS 的 Azure SDK 不支持 Google 的客户端身份验证(我已经和微软的多位工程师谈过,他们都建议不要使用他们的 SDK 进行身份验证,因为他们不支持它).除了尝试围绕 AWS 思考之外,我不知道还能做什么。有帮助吗?
此外,这是一段代码
func viewController(vc : UIViewController, finishedWithAuth authResult : GTMOAuth2Authentication, error : NSError?) {
let azureGoogleServerAuthToken = authResult.userData.serverAuthCode
let azureGoogleIdToken = authResult.parameters["id_token"] as! String
let request = NSMutableURLRequest(URL: NSURL(string: "https://retip-ios.azurewebsites.net/.auth/login/google")!)
request.HTTPMethod = "POST"
let postString = "authorization_code=\(azureGoogleServerAuthToken)&id_token=\(azureGoogleIdToken)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
guard error == nil && data != nil else { // check for fundamental networking error
print("error=\(error)")
return
}
if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("responseString = \(responseString)")
}
task.resume()
它失败了,异常说它每次都找到 nil。我已将其隔离出来以验证这是导致异常的原因。
提前致谢。
直接与 Azure 支持人员交谈并与他们一起工作了一个多星期以找到解决方案后,他们的文档似乎在这个问题上故意含糊不清,因为他们不支持使用 Google 进行客户端身份验证.任何解决方案都需要定制构建,这意味着这无法通过 Azure SDK 实现。
所以我遇到的问题是,我正在尝试使用带有 Google API 客户端库的客户端身份验证对 Azure 进行身份验证。我可以获得刷新、访问和 ID 令牌,但 serverAuthCode 是 nil
。我需要 serverAuthCode 才能创建调用 Azure 身份验证端点的 HTTP 请求。 iOS 的 Azure SDK 不支持 Google 的客户端身份验证(我已经和微软的多位工程师谈过,他们都建议不要使用他们的 SDK 进行身份验证,因为他们不支持它).除了尝试围绕 AWS 思考之外,我不知道还能做什么。有帮助吗?
此外,这是一段代码
func viewController(vc : UIViewController, finishedWithAuth authResult : GTMOAuth2Authentication, error : NSError?) {
let azureGoogleServerAuthToken = authResult.userData.serverAuthCode
let azureGoogleIdToken = authResult.parameters["id_token"] as! String
let request = NSMutableURLRequest(URL: NSURL(string: "https://retip-ios.azurewebsites.net/.auth/login/google")!)
request.HTTPMethod = "POST"
let postString = "authorization_code=\(azureGoogleServerAuthToken)&id_token=\(azureGoogleIdToken)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
guard error == nil && data != nil else { // check for fundamental networking error
print("error=\(error)")
return
}
if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("responseString = \(responseString)")
}
task.resume()
它失败了,异常说它每次都找到 nil。我已将其隔离出来以验证这是导致异常的原因。
提前致谢。
直接与 Azure 支持人员交谈并与他们一起工作了一个多星期以找到解决方案后,他们的文档似乎在这个问题上故意含糊不清,因为他们不支持使用 Google 进行客户端身份验证.任何解决方案都需要定制构建,这意味着这无法通过 Azure SDK 实现。