Firebase UI AUTH получает неверный токен доступа для Google и Facebook за iOS - PullRequest
0 голосов
/ 18 февраля 2020

Я использую Firebase UI auth для аутентификации пользователя с помощью Google, Facebook и проверки подлинности телефона для моего приложения iOS с помощью swift. Я выполнил все шаги, указанные в документации. Я получаю недопустимый токен доступа после входа в систему через Google и Facebook, который я использовал для проверки на сервере по ссылкам ниже.

Примечание: - Использовались те же ссылки для Android приложения. и он работает нормально.

1: для проверки токена Google = https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={0}

2: для проверки токена Facebook = https://graph.facebook.com/me?access_token={0}&appsecret_proof={1}&fields=id,about,address,birthday,email,first_name,gender,last_name,middle_name,name,picture,short_name

Получено ниже ответа от Facebook:

{"error":{"message":"Bad signature","type":"OAuthException","code":190,"fbtrace_id":"Aztx2JtnwALSSiTLsH5D297"}}

Полученный ниже ответ от Google:

{
  "error_description": "Invalid Value"
}

Получение недопустимой ошибки подписи при отладке этого токена в jwt.io .

Ниже приведен мой код для получения токена

func authUI(_ authUI: FUIAuth, didSignInWith user: User?, error: Error?) {
    // handle user and error as necessaryµ
    let currentUser = Auth.auth().currentUser        
    currentUser?.getIDTokenForcingRefresh(true) { idToken, error in
        if let error = error {
            // Handle error
            return;
        }            
        // Send token to your backend via HTTPS
        // ...
        if let providerData = Auth.auth().currentUser?.providerData {
            for userInfo in providerData {
                var provider : String = "FIREBASE_PHONE_AUTH"
                switch userInfo.providerID {
                case "facebook.com":
                    provider = "FACEBOOK"
                case "google.com":
                    provider = "GOOGLE"
                default:
                    provider = "FIREBASE_PHONE_AUTH"
                }                    
                self.performSignIn(provider ,idToken! )
            }
        }
    }
}

Я использовал это idToken для аутентификации пользователя на сервере.

Аутентификация телефона Firebase работает нормально в моем случае, но сталкивается только с проблемой для Google и фейсбук. Попытка выяснить проблему с последних 2-3 дней. Есть кто-нибудь, кто сталкивался с такой же проблемой? Пожалуйста, помогите решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...