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

Client-side authentication with google+ for iOS on azure mobile service backend

提问人:rubenhak 提问时间:3/21/2015 最后编辑:rubenhak 更新时间:10/6/2015 访问量:371

问:

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

这是我所做的:

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

在视图控制器中 @IBOutlet弱变量 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 移动服务标识配置中指定了相同的 ClientID 和机密。

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

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

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

谢谢 鲁本

iOS 身份验证 Azure Google-Plus 服务器端

评论

0赞 Goutham 10/7/2015
我现在也面临这个问题,你@rubenhak找到解决方案的。
0赞 Sonali Pawar 6/19/2017
有人解决这个问题,因为我仍然面临这个问题
0赞 rubenhak 6/27/2017
对不起,伙计们,没有解决方案。我最终离开了 Azure,只使用 GoogleSDK 就可以了。

答: 暂无答案