在天蓝色移动服务后端使用google + for iOS进行客户端身份验证

时间:2015-03-21 08:04:00

标签: ios authentication azure google-plus server-side

我正在尝试将服务器端的Google+登录集成到我的iOS应用中。

这就是我所做的:

func application(application: UIApplication, openURL url: NSURL, sourceApplication: NSString?, annotation: AnyObject) -> Bool
{
   return GPPURLHandler.handleURL(url, sourceApplication: sourceApplication, annotation:annotation)
}

//在视图控制器中     @IBOutlet weak var gpLoginView:GPPSignInButton!

    googlePlus = GPPSignIn.sharedInstance()
    googlePlus.shouldFetchGooglePlusUser = true
    googlePlus.clientID = "CLIENT-ID"
    googlePlus.homeServerClientID = "HOME-CLIENT-ID"
    googlePlus.scopes.append(kGTLAuthScopePlusLogin)
    googlePlus.delegate = self;


func finishedWithAuth(auth: GTMOAuth2Authentication!, error: NSError!)
{
    if error != nil
    {
        println("[GoogleAuthentication] Error: \(error)")
    }
    else
    {
        var serverCode = GPPSignIn.sharedInstance().homeServerAuthorizationCode
        if serverCode == nil
        {
            println("[GoogleAuthentication] homeServerAuthorizationCode is missing")
            googlePlus.disconnect()
        }
        else
        {
            client.loginWithProvider("google", token: ["access_token" : serverCode])
            {
                user, error in
                println("[Azure::loginWithToken] Result. User=\(user). Error=\(error).")
            }
        }
    }
}

我的google开发者控制台中有两个凭据。一个用于iOS应用程序,另一个用于Web应用来自iOS应用程序的ClientID在googlePlus.ClientID中指定。来自Web应用程序的ClientID在homeServerClientID中指定。此外,Azure Mobile Service Identities配置中指定了相同的ClientID和Secret。

此外,还使用应用程序包的名称创建URL架构。

我得到认证的客户端部分成功通过并且能够获得homeServerAuthorizationCode,但是当我尝试执行服务器端部分时,我从azure移动服务获得错误。我得到的错误是:Error Domain = com.Microsoft.WindowsAzureMobileServices.ErrorDomain Code = -1301“服务器返回错误。” UserInfo = 0x170464c80 {NSLocalizedDescription =服务器返回错误。}。

请帮助弄清楚我做错了什么?

谢谢, 鲁

0 个答案:

没有答案