Ошибка 400: valid_request для iOS. Войти в Google

У меня есть приложение для iOS, в котором есть вход в Google Cloud с помощью Firebase, но при открытии Интернета для входа в систему я получаю следующие ошибки:

Мы не можем проверить подлинность этого приложения. Пожалуйста, свяжитесь с разработчик. Токен не удался.

Если вы ******* разработчик, просмотрите подробную информацию об ошибке.

Ошибка 400: невалидный_запрос

Подробности запроса: тип_ответа=код code_challenge_method=S256 nonce=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

Я проверил учетные данные файла GoogleService-Info.plist, который я скачал из Firebase, и оба CLIENT_ID и REVERSED_CLIENT_ID такие же, как и в моей конфигурации Google Cloud, кроме того, REVERSED_CLIENT_ID совпадает с типом URL, который у меня есть в Xcode

На панели управления Google Cloud Platform у меня есть такая конфигурация:

Внутри моего iOS-клиента для ******* (авторизация, созданная службой Google) у меня есть эта конфигурация, равная моему файлу GoogleService-info.

Есть идеи, как я могу решить эту ошибку? Я удалил и снова добавил свое приложение iOS в Firebase, но проблема все еще сохраняется.

Мой код для входа в 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)
            }
        }
    }

211
1

Ответ:

Решено

Единственный способ решить эту проблему - удалить мое приложение iOS в Firebase и снова зарегистрировать приложение, деактивировать и снова активировать аутентификацию... Люди из Google мне вообще не помогли, хотя я заплатил за план поддержки, если вы У вас та же проблема, не тратьте время на Google, просто выполните эти шаги, и вы сможете решить эту ошибку.