Когда пользователь регистрируется на моем сайте, я звоню firebase.auth().createUserWithEmailAndPassword(email, password)
, и их пользователь был успешно создан.Проверьте, зарегистрирован ли пользователь по электронной почте в Firebase
В основном я хочу, чтобы у меня была учетная запись «У меня есть учетная запись» на моей странице. Если они вводят свой адрес электронной почты, он должен отправить запрос Firebase ТОЛЬКО своим электронным письмом, а Firebase затем должен вернуть true/false (или что-то подобное).
«Обходной путь», который я нашел, пытается создать пользователя или просто подписаться в Firebase с пустым паролем. Я предполагаю, что Firebase вернет «неправильный пароль» (имея в виду, что у них есть учетная запись). firebase.auth().fetchProvidersForEmail("[email protected]")
также может работать, но я не смог понять, как это работает.
В качестве альтернативы я сохраняю все электронные письма в массиве. Нажимайте на этот массив, когда новый пользователь регистрируется, но это кажется очень неуверенным и, как большая часть работы (поскольку я не думаю, что вы можете просто нажать на адрес электронной почты и забыть ID, в основном делая невозможным повторение всех писем) ,
Вот что я придумал, что работает:
firebase.auth().signInWithEmailAndPassword(this.username, " ").catch(function(error) {
if(error.code === "auth/wrong-password") {
console.log("USER HAS AN ACCOUNT");
} else if(error.code === "auth/user-not-found"){
console.log("NEW USER");
}
});
Просто войдите с паролем, который не работает.
FWIW «У меня есть учетная запись», как правило, не самая лучшая практика безопасности. Как кто-то должен выяснить, есть ли у них учетная запись, путем успешной регистрации или неспособности сделать это. В противном случае, плохие участники могут использовать функцию «У меня есть учетная запись» для определения пользователей вашего приложения и (в худшем случае) разрабатывают кампании фишинга для копья, основанные на вашем сервисе. –
@MichaelBleigh Мне не нужна лекция по безопасности аккаунта. Спасибо за ваши проблемы. – MortenMoulder
@MichaelBleigh Извините, если это получилось грубо. Это было не мое намерение :) Я пытаюсь создать новую систему аутентификации (почти как Microsoft), где вы начинаете вводить свой адрес электронной почты, а затем проверяет, есть ли у пользователя размытие. – MortenMoulder