2016-08-19 83 views
2

发现使用谷歌客户端库用户serverAuthCode所以我CAM experincrein问题是,我试图使用客户端身份验证与谷歌API客户端库Azure中进行验证。我能得到刷新,访问和ID令牌,但serverAuthCode是nil。我需要serverAuthCode才能创建HTTP请求来调用Azure身份验证端点。在Azure SDK适用于iOS不支持谷歌的客户端身份验证(我在微软谈过多个工程师个个都建议不要使用他们的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() 

它失败并抛出异常说,它是寻找零每次。我已经隔离它来验证这是什么导致异常。

在此先感谢。

回答

0

与Azure支持直接说话和与他们一起工作了一个多星期,以找到一个解决方案后,它看起来好像他们的文档是在这个问题上故意模糊的,因为它们不支持与谷歌的客户端身份验证。任何解决方案都需要定制,这意味着这不能通过Azure SDK实现。