2017-02-07 19 views
0

oAuthとローカルのユーザ名/パスワード(電子メールアドレス)にはFirebase Web Authentication pretty much setup and workingがあります。Firebase Web認証 - 新しいアカウントの管理者承認

私の質問は次のとおりです。誰かが、新しいアカウントを完全に検証する前に、サイト管理者の承認を得なければならないという追加のステップを導入する方法について考えていますか?私はuser.emailVerifiedのプロパティを調整/利用することを考えていましたが、oAuthユーザーにとってはうまくいかないと思っています。

これを行う簡単な方法はありますか?管理者の承認手順を追加するにはまたは、Firebase認証サブシステムに簡単に切り替えることができるプロパティがありますか? Firebase認証を介したユーザーのみ固有のユーザーIDとそれらを提供して作成

enter image description here

答えて

5

。これは、あなたのアプリケーションへのアクセスを許可したり、何らかの方法で「登録」することはできません。それはあなたの所以です。ユニークなクレデンシャル(Facebook IDやEメール/パスワードハッシュなど)を一意のFirebase IDにマップするだけです。

ユーザーは、必要なアクセス権と、データベース(または他の適切なメカニズム)にユーザーを追加するワークフローを持つことで、ユーザーを「登録」することができます。

データベースを想定すると、ユーザープロファイル/メタデータを/users/$uidなどのパスに書き込んで、/users/<user id>の有無に基づいてセキュリティルールを設定します。

管理者の承認を強制するには、最も簡単な答えは、/registered/<user id>/trueなどの別のパスを管理者が(もちろんセキュリティルールによって)アクセスできるようにすることです。

今、あなたは、次のようなルールを記述することができます

{ 
    "...some path...": { 
    ".read": "root.child("registered/" + auth.uid).val() === true" 
    } 
} 

は、基本的には、登録処理を実施します。

+0

これは意味があります。これにより、私が探している "認可"機能を追加することができます。どうもありがとう。 –

+0

OKですが、 'auth.onAuthStateChanged'にログインしたユーザーが登録済みかどうかはどうですか?言い換えれば、登録/承認されたユーザーにのみリンク/ボタンを表示したいと考えています。私は単純に 'db.ref( '/登録/' + uid).once( '値')を考えている。((スナップ){if(snap.val()=== true){//ログユーザーは許可されています}}); 'これは安全ですか?これはこれを行う方法ですか? –

+0

質問をデータベースのスクリーンショットで更新しました。 "ディーラー" =あなたの答え、すなわち同じアイデアの "登録された"ユーザー。あなたの助けをありがとう。 –

関連する問題