AWS移动枢纽Google身份验证iOS



我正在尝试在iOS中实现AWS移动中心。当单击"使用Google登录"按钮时,我在身份浏览器上看到了我的身份ID。这里没有问题。然后,我想访问Gidgoogleuser。我初始化了gidgoogleuser,但我无法访问用户信息:

 let googleUser = GIDGoogleUser.init()

然后我检查了用户使用Google登录:

    if(AWSGoogleSignInProvider.init().isLoggedIn){
         print("Success")
}else{
         print("Authentication error")
}

我在Xcode中看到了"身份验证错误"输出。我的错误在哪里?以及如何获取Google用户的电子邮件和全名?

appdelegate.swift:

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        AWSGoogleSignInProvider.sharedInstance().setScopes(["profile","email", "openid"])
  AWSSignInManager.sharedInstance().register(
            signInProvider: AWSGoogleSignInProvider.sharedInstance())

 let didFinishLaunching = AWSSignInManager.sharedInstance().interceptApplication(
                application, didFinishLaunchingWithOptions: launchOptions)
        if (!isInitialized) {
            AWSSignInManager.sharedInstance().resumeSession(completionHandler: {
                (result: Any?, error: Error?) in
                print("Result: (result) n Error:(error)")
            })
            isInitialized = true
        }
        return didFinishLaunching
}

我本周一直在尝试解决同样的问题,发现实际上与Awsgoogeglesigninprovider无法做到。

如果您浏览了AWS移动SDK代码,您会发现它维护了Gidgoogleuser Singleton的内部声明实例。由于AWS SDK中的Gidgoogleuser是一个单独的类声明,因此代码中对Gidgoogleuser.init()的呼吁创建了该Singleton的第二个实例。那时发生了坏事。不幸的是,AWS SDK并未使他们的Gidgoogleuser的内部实例通过其API提供。

我仍在寻找合理的解决方法。

相关内容

  • 没有找到相关文章