错误 400:iOS 谷歌登录的 invalid_request

问题描述 投票:0回答:1

我有一个使用 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

Result on Google SignIn iOS

我检查了从 Firebase 下载的 GoogleService-Info.plist 文件的凭据,CLIENT_ID 和 REVERSED_CLIENT_ID 与我的 Google Cloud 配置中的相同,而且 REVERSED_CLIENT_ID 与我的 URL 类型相同在 Xcode 中

URL Types on Xcode

在我的 Google Cloud Platform 仪表板中,我有以下配置: Google Cloud Platform on Credentials Section

在我的 ******** iOS 客户端(由 Google 服务创建的授权)中,我有这个配置,它等于我的 GoogleService-info 文件 iOS Client config

知道如何解决这个错误吗?我在 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)
            }
        }
    }
ios swift firebase google-cloud-platform google-oauth
1个回答
0
投票

解决这个问题的唯一方法是在 Firebase 中删除我的 iOS 应用程序并再次注册该应用程序,停用并再次激活身份验证...即使我支付了支持计划,Google 的人员也没有帮助我,如果你也有同样的问题,不要在谷歌上浪费时间,只需执行这些步骤,你应该能够解决该错误。

© www.soinside.com 2019 - 2024. All rights reserved.