Наше приложение (Electron) поддерживается firebase для аутентификации, где у нас включено два метода аутентификации;а именно: Email
и Google Accounts
.
При аутентификации в Google мы открываем окно браузера не-Electron и предоставляем необходимые redirect_uri
.Сервис http
предоставляется нашим приложением Electron, которое прослушивает Google authentication code
.Как только код получен, мы делаем запрос на authentication token
и используем его для дальнейшей генерации учетных данных, необходимых для входа в наш проект firebase.
Все во время нашего тестирования работало правильно, однако мы видим, чтопроблема, из-за которой небольшое количество новых учетных записей создает несколько учетных записей в firebase, все со своими уникальными uid
.
Дополнительные замечания:
- FirebaseПроект настроен на разрешение только одной учетной записи на один адрес электронной почты
- Firebase версия 5.4.2
Функция входа в систему
Один размы извлекаем токен, следующая функция отвечает за вход пользователя в систему.
public async googleLogin(credentials) {
try {
const googleCred = firebase.auth.GoogleAuthProvider.credential(credentials.id_token);
await firebase.auth().signInAndRetrieveDataWithCredential(googleCred);
// auth successful, firebase.auth().onAuthStateChanged() will fire
} catch (err) {
// authentication error.
}
}
Количество учетных записей, созданных на один адрес Google, различается (на данный момент мы видели от 2 до 7 различных пользовательских идентификаторовдля одной учетной записи Google).
Не уверен, что может быть причиной этого с нашей стороны, но если у кого-то есть какие-либо идеи, это будет с благодарностью.
Примечание. Я также написал в службу поддержки Firebase и обновлю вопрос (или опубликую ответ), когда нам удастся решить эту проблему.