Я использую 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 дней. Есть кто-нибудь, кто сталкивался с такой же проблемой? Пожалуйста, помогите решить эту проблему.