提问人:rubenhak 提问时间:3/21/2015 最后编辑:rubenhak 更新时间:10/6/2015 访问量:371
在 Azure 移动服务后端使用 google+ for iOS 进行客户端身份验证
Client-side authentication with google+ for iOS on azure mobile service backend
问:
我正在尝试将服务器端 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=服务器返回错误。
请帮忙弄清楚我做错了什么?
谢谢 鲁本
答: 暂无答案
评论