我有一个使用 Firebase 进行 Google Cloud 登录的 iOS 应用程序,但是当打开网页进行登录时,出现以下错误:
我们无法验证此应用程序的真实性。请联系 开发商。令牌失败。
如果您是********开发者,请查看错误详细信息。
错误 400:无效_请求
请求详细信息:response_type=code code_challenge_method=S256 随机数=brNSXpeJTQfPJn435Pn9C0niL5NIRzkxtb1BAIsXqu0 device_os=iOS 17.4.1 client_id=541903925667-nnvn5cctvima77nh4elc81schetiv4ok.apps.googleuser content.com emm_support=1 gpsdk=gid-7.1.0 gidenv=ios 状态=-KR22DP2ZWwf9bXZRWm96HGQjVt2-8KxEZ1GHYxAu3g redirect_uri=com.googleusercontent.apps.541903925667-nnvn5cctvima77nh4elc81schetiv4ok:/oauth2callback code_challenge=4ryryshF3lScPX6fJ-MSWR0AmgMsUM_OlhhFoo9P3MU include_granted_scopes=true access_type=离线 范围=https://www.googleapis。 com/auth/userinfo.email https://www.googleapis。 com/auth/userinfo.profile openid
我检查了从 Firebase 下载的 GoogleService-Info.plist 文件的凭据,CLIENT_ID 和 REVERSED_CLIENT_ID 与我的 Google Cloud 配置中的相同,而且 REVERSED_CLIENT_ID 与我的 URL 类型相同在 Xcode 中
在我的 Google Cloud Platform 仪表板中,我有以下配置:
在我的 ******** iOS 客户端(由 Google 服务创建的授权)中,我有这个配置,它等于我的 GoogleService-info 文件
知道如何解决这个错误吗?我在 Firebase 上删除并再次添加了我的 iOS 应用程序,但问题仍然存在
我使用 Google 登录的代码是:
func sigInWithGoogle(completion: @escaping (Bool, Error?) -> Void) {
guard let rootViewController = UIApplication.shared.keyWindow?.rootViewController else { return }
guard let clientID = FirebaseApp.app()?.options.clientID else { return }
let config = GIDConfiguration(clientID: clientID)
GIDSignIn.sharedInstance.configuration = config
GIDSignIn.sharedInstance.signIn(withPresenting: rootViewController) { signInResult, error in
if let error = error {
completion(false, error)
print("Error loggin with Google: \(error.localizedDescription)")
return
}
guard let authentication = signInResult?.user, let idToken = authentication.idToken else {
return
}
let idTokenString = idToken.tokenString
let credential = GoogleAuthProvider.credential(withIDToken: idTokenString, accessToken: signInResult?.user.idToken?.tokenString ?? "")
Auth.auth().signIn(with: credential) { authResult, error in
if let error = error {
completion(false, error)
return
}
guard let user = authResult?.user else { return }
AnalyticsManager.shared.logEvent(.loginWithGoogle)
guard let name = user.displayName else { return }
DispatchQueue.main.async {
self.defaults.set(name, forKey: Constants.UserDefaultsValues.userFirstName)
}
completion(true, nil)
}
}
}
解决这个问题的唯一方法是在 Firebase 中删除我的 iOS 应用程序并再次注册该应用程序,停用并再次激活身份验证...即使我支付了支持计划,Google 的人员也没有帮助我,如果你也有同样的问题,不要在谷歌上浪费时间,只需执行这些步骤,你应该能够解决该错误。