ユーザー認証モジュールに使用している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 では、ユーザーが実際に受信トレイにアクセスしてリンクをクリックして検証を実行したかどうかを確認する方法はないようです。UI は次のようになります。
基本的なテストを実行しましたが、ユーザー UID は検証の前後で変化しません。
では、ここで私の質問です。電子メールの検証は正しく行われましたか? そうである場合 (したがって、UI には検証済みと未検証が表示されません)、Auth モジュールでこれら 2 つのユーザー セットにアクセスするための受け入れられた方法はありますか? UID とそのプロパティ (プロパティを含む) の基になるテーブルにアクセスする方法がわかりませんemailVerified
。機能がコンソールにない場合、さらにコードを記述しなければならないことは気にしません。次のステップのために正しい方向に微調整するだけです。