firebase 电子邮件验证网站
Posted
技术标签:
【中文标题】firebase 电子邮件验证网站【英文标题】:firebase email verification web 【发布时间】:2018-06-15 18:52:30 【问题描述】:我的电子邮件验证有问题。我的错误是“用户为空”,因此它不会发送验证电子邮件,但它确实在控制台中显示了登录 uid,并且我的 console.firebase.google.com 项目显示了已注册的电子邮件。我应该更改什么以便发送电子邮件并且在用户验证他们的电子邮件之前不授予访问权限?我已经阅读了文档,但无法弄清楚。提前谢谢你。
//add create user event
btnSignUp.addEventListener('click', e =>
//get email and Password
const email = txtEmail.value;
const pass = txtPassword.value;
const auth = firebase.auth();
const promise = auth.createUserWithEmailAndPassword(email, pass);
var user = firebase.auth().currentUser;
user.sendEmailVerification();
promise.catch(e => console.log(e.message));
);
//Add a realtime listener
firebase.auth().onAuthStateChanged(function(user)
if (user.emailVerified)
console.log('Email is verified');
console.log(user);
else
window.location = "index.html";
firebase.auth().signOut();
alert("Email is not verified");
【问题讨论】:
好的,谢谢。有没有办法让用户在点击电子邮件中的验证链接之前不显示在 Google Firebase 控制台中? 【参考方案1】:对于Firebase version 9
,我目前正在使用-
createUserWithEmailAndPassword(auth, email, password)
.then((userCredential) =>
// Signed in
const user = userCredential.user;
sendEmailVerification(user)
.then(() =>
// Email verification sent!
let msg = 'An email verification link has been sent to ' + user.email;
document.querySelector('.success.email_msg').innerHTML=msg;
);
)
.catch((error) =>
document.querySelector('.error.reg_error').innerHTML = error.message;
);
【讨论】:
【参考方案2】:您不是在等待承诺解决。更新到以下sn-p:
const promise = auth.createUserWithEmailAndPassword(email, pass);
promise.then(user =>
user.sendEmailVerification();
).catch(error => console.log);
【讨论】:
以上是关于firebase 电子邮件验证网站的主要内容,如果未能解决你的问题,请参考以下文章
如何检查用户是否允许或禁止Facebook身份验证 - Firebase中的电子邮件
Firebase Auth on Web - 如何为电子邮件/密码登录添加垃圾邮件保护