我已经设置了一个 Firebase 项目,我将其用于它的用户身份验证模块。我也在使用 Github 的firebaseui-web项目。
根据此代码,我的登录重定向工作正常:
// FirebaseUI config.
var uiConfig = {
'signInSuccessUrl': 'MY_REDIRECT.html',
'signInOptions': [
firebase.auth.EmailAuthProvider.PROVIDER_ID
],
// Terms of service url.
'tosUrl': '<your-tos-url>',
};
当页面加载(即 MY_REDIRECT.html)时,我正在检查用户的状态以查看他们是否已经验证了他们的电子邮件,如果没有,则调用该sendEmailVerification
方法:
checkLoggedInUser = function() {
auth.onAuthStateChanged(function(user) {
if (user) {
// is email verified
if(user.emailVerified) {
// show logged in user in UI
$('#loggedinUserLink').html('Logged in:' + user.email + '<span class="caret"></span>');
} else {
// user e-mail is not verified - send verification mail and redirect
alert('Please check your inbox for a verification e-mail and follow the instructions');
// handle firebase promise and don't redirect until complete i.e. .then
user.sendEmailVerification().then(function() {
window.location.replace('index.html');
});
}
} else {
// no user object - go back to index
window.location.replace("index.html");
}
}, function(error) {
console.log(error);
});
};
window.onload = function() {
checkLoggedInUser()
};
到目前为止一切顺利 - Firebase 正在做我想做的事!多谢你们 :)
但是,在 Firebase 控制台 UI 中,似乎没有一种方法可以查看用户是否真的进入了他们的收件箱并单击了链接以执行验证。用户界面如下所示:
我已经运行了基本测试,并且用户 UID 在验证之前和之后都没有改变。
所以,这是我的问题——我是否正确地进行了电子邮件验证?如果是这样(因此 UI 没有显示我已验证与未验证)是否有一种可接受的方法来访问 Auth 模块中的这两组用户?我看不到访问 UID 基础表及其属性(包括emailVerified
属性)的方法。如果控制台中没有该功能,我不介意编写更多代码 - 只是希望在下一步中朝着正确的方向轻推。