Javascript 验证用户是否是firebase中电子邮件地址的所有者
我正在尝试使用firebase进行用户身份验证 对于基于电子邮件和密码的身份验证,我想检查用户在表单中输入的电子邮件是否真的属于用户,我可以通过向用户发送验证链接来做到这一点 因此,在提交表单并完成所有其他验证后,我尝试了以下代码:Javascript 验证用户是否是firebase中电子邮件地址的所有者,javascript,reactjs,firebase,firebase-authentication,Javascript,Reactjs,Firebase,Firebase Authentication,我正在尝试使用firebase进行用户身份验证 对于基于电子邮件和密码的身份验证,我想检查用户在表单中输入的电子邮件是否真的属于用户,我可以通过向用户发送验证链接来做到这一点 因此,在提交表单并完成所有其他验证后,我尝试了以下代码: firebase.auth().createUserWithEmailAndPassword(this.state.email,this.state.password) .then(()=>{ var actionCod
firebase.auth().createUserWithEmailAndPassword(this.state.email,this.state.password)
.then(()=>{
var actionCodesettings={
url: 'https://localhost:3000/?email=' + firebase.auth().currentUser.email,
handleCodeInApp: false
}
firebase.auth.currentUser.sendEmailVerification(actionCodesettings)
.then(()=>{
console.log("Email Sent")
})
.catch((error)=>{
console.log("Unexpected error occured")
})
})
.catch((error)=>{
var errorCode = error.code;
if(errorCode === 'auth/email-already-in-use'){
this.setState({
Message:"Email already Used"
})
return;
}
else if(errorCode === 'auth/invalid-email'){
this.setState({
Message:"Email already Used"
})
return;
}
else if(errorCode === 'auth/weak-password'){
this.setState({
Message:"Password is too Weak"
})
return;
}
})
}
但是我没有收到任何电子邮件,邮件“email Sent”也没有注销。您收到一个语法错误,因为您使用了
firebase.auth.currentUser
而不是firebase.auth().currentUser
您没有看到此错误的原因是,您没有处理预期之外的错误代码,从而忽略了此错误。识别这些类型错误的一个好方法是使用switch
语句和default
回退案例
firebase.auth().createUserWithEmailAndPassword(this.state.email,this.state.password)
。然后((结果)=>{
var actionCodesettings={
网址:'https://localhost:3000/?email=“+result.user.email,
handleCodeInApp:false
}
返回result.user
.sendEmailVerification(actionCodesettings);
})
.然后(()=>{
这是我的国家({
信息:“请检查您的电子邮件以进行验证。”
});
})
.catch((错误)=>{
const errorCode=error.code;
开关(错误代码){
案例“身份验证/电子邮件已在使用中”:
这是我的国家({
消息:“此电子邮件已被使用”
});
返回;
案例“验证/无效电子邮件”:
这是我的国家({
消息:“电子邮件无效”
});
返回;
案例“身份验证/弱密码”:
这是我的国家({
消息:“请使用更安全的密码”
});
返回;
违约:
控制台错误(“登录和验证用户时出现意外代码”,错误);
这是我的国家({
消息:“意外错误。请与支持部门联系。”
});
返回;
}
});
您遇到语法错误,因为您使用了firebase.auth.currentUser
而不是firebase.auth().currentUser
您没有看到此错误的原因是,您没有处理预期之外的错误代码,从而忽略了此错误。识别这些类型错误的一个好方法是使用switch
语句和default
回退案例
firebase.auth().createUserWithEmailAndPassword(this.state.email,this.state.password)
。然后((结果)=>{
var actionCodesettings={
网址:'https://localhost:3000/?email=“+result.user.email,
handleCodeInApp:false
}
返回result.user
.sendEmailVerification(actionCodesettings);
})
.然后(()=>{
这是我的国家({
信息:“请检查您的电子邮件以进行验证。”
});
})
.catch((错误)=>{
const errorCode=error.code;
开关(错误代码){
案例“身份验证/电子邮件已在使用中”:
这是我的国家({
消息:“此电子邮件已被使用”
});
返回;
案例“验证/无效电子邮件”:
这是我的国家({
消息:“电子邮件无效”
});
返回;
案例“身份验证/弱密码”:
这是我的国家({
消息:“请使用更安全的密码”
});
返回;
违约:
控制台错误(“登录和验证用户时出现意外代码”,错误);
这是我的国家({
消息:“意外错误。请与支持部门联系。”
});
返回;
}
});