Моя форма:
<form class="signup" >
<p style="display:inline-block;">Signup or </p>
<p class="showcursor"style="display:inline-block;color:orange;" onclick="showlogin()">login to your account</p>
</br>
<input name="phone" type="text" placeholder="Enter Phone number">
<input name="name" type="text" placeholder="Enter name">
<input name="email" type="text" placeholder="Enter email">
<input name="password1" type="text" placeholder="Enter password">
<input name="password2" type="text" placeholder="Retype password">
<button class="signin" id="otp" type="button" onclick="signup()" style="display:inline-block;"><b>Continue</b></button>
</form>
Мои сценарии:
function signup() {
var formdata = new FormData(document.getElementsByClassName("signup")[0]);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'cartserver.php', true); //Here I check if the phone number already exists
// Set up handler for when request finishes
xhr.onload = function() {
if (xhr.status === 200) {
//File(s) uploaded
var arr = JSON.parse(this.responseText);
if (arr[0] == 1) {
onSignInSubmit(arr[2]); //here passing the phone number
} else {
alert(arr[1]);
}
} else {
alert("Check your connection!");
}
};
formdata.append("id", 1);
xhr.send(formdata);
}
function onSignInSubmit(phone) {
var phoneNumber = phone;
var appVerifier = window.recaptchaVerifier;
firebase
.auth()
.signInWithPhoneNumber(phoneNumber, appVerifier)
.then(function(confirmationResult) {
window.confirmationResult = confirmationResult;
})
.catch(function(error) {
console.log(error);
});
}
function submitPhoneNumberAuthCode() { //when user submits the code
var code = document.getElementById("code").value;
confirmationResult
.confirm(code)
.then(function(result) {
var formdata = new FormData(document.getElementsByClassName("signup")[0]);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'createaccount.php', true); //create his account
xhr.onload = function() {
if (xhr.status === 200) {
//File(s) uploaded
alert(this.responseText);
}
};
xhr.send(formdata);
}
.catch(function(error) {
console.log(error);
});
}
Моя проблема в том, что предположим, что пользователь вводит правильный код, но при этом меняет номер телефона, затем учетную запись создается с другим номером телефона, также если пользователь изменяет javascript и помещает код создания учетной записи в функцию перехвата ошибок, учетная запись создается снова.