2016-05-08 19 views
3

Firebaseを使用して作成しようとしているフォーラムがあります。特定のサブフォーラムにアクセスできるのは、ユーザーがパスワードを知っている場合のみです。参加時に、クライアントはサブフォルムのパスワードを取得し、入力されたパスワードが正しいかどうかを確認します。Firebaseパスワードの認証

代わりにパスワード検証サーバー側を行う方法はありますか?

+0

検証サーバー側またはクライアント側を行っていますか? – sushildlh

+0

私は現在、クライアントへのパスワードを取得していて、ユーザが送信を命じるたびにこのパスワードと照合します。私はむしろfirebaseにパスワードを送ってブール応答を得るでしょう。 –

+0

firebaseからユーザデータを取得する方法を知っていると思います。それでは何が必要ですか?取得したユーザーデータと入力値を比較します。あなたが欲しいものではないのですか、何かが欠けていますか? – uguboz

答えて

2

この問題に取り組むには、別のアプローチを使用することをお勧めします。パスワードを与えるのではなく、firebaseのサブフォーラムにアクセスできるユーザーのリストを保持することをお勧めします(管理者だけがこのリストに書き込むことができます)。firebaseセキュリティルールを使用して、誰かがサブフォーラムに読み書きできるかどうかを確認しますそのリストに基づいています。

"forums":{ 
     "$subforum_id": { 
     ".read": "auth != null && root.child('subforums').child($subforum_id).hasChild(auth.uid)", 
     ".write": "auth != null && root.child('subforums').child($subforum_id).hasChild(auth.uid)" 
     } 
    } 
+0

フォーラムは匿名ですので、これはうまく動作しません。 –

1

あなたのシナリオはかなり奇抜です:あなたのサブフォーラムのための

ルールは少し、このようになります。あなたはユーザー名を忘れてパスワードを持っているだけです。あなたがそれらを特定していない場合、どのように誰がフォーラムエントリを変更したかを知ることを計画していますか? firebaseでの電子メール認証を有効にし

  1. -

    とにかく、あなたの尋ねるために、あなたは匿名ユーザーがフォーラムにアクセスしたいときは、事前に作成したユーザーを偽装ところ、以下のようなものを作業することができます。すべてのフォーラムのパスワードについては

  2. 、これらの値を持つユーザーを作成 -

    username: [email protected] 
    password: forumpassword 
    

    は、そのUIDを注意してください。

  3. それぞれのuidを子の「uid」プロパティとして対応するフォーラムに追加します。

  4. パスワード保護されたフォーラムのための単純なセキュリティルールを追加 -

    "forums":{ 
        "$subforum_id": { 
        ".read": "auth.uid == data.child('uid')", 
        ".write": "auth.uid == data.child('uid')" 
        } 
    } 
    
  5. 今、匿名ユーザーは、フォーラムにアクセスしたいとき、彼女はパスワードを与える必要があり、あなたが適切なものを使用してユーザー名をハードコーディングする必要があります。彼女がアクセスしようとしているフォーラムのために。こうすることで、匿名ユーザーがパスワードを知っていることをフォーラムユーザーとして偽装することができます。
+0

これは、ユーザーが匿名で懸念を表明できるフォーラムです。パスワードは現実には与えられ、ユーザーは自分のGoogleアカウントに登録し、自分が選択できる表示名を持ちます。フォーラムの参加率と出席率が高いため、モデレータの更新が必要な許可ユーザーのリストを保持したくない理由があります。 –

+0

提案はユーザーを強制するものではありませんが、firebaseサーバー側の認証を使用する場合は、有効なユーザーを偽装する必要があります。したがって、プライベートフォーラムごとに1人のユーザーを作成する必要があります。 – hazardous

+0

複数のユーザーがGoogleのIDで認証され、aが偽のフォーラムアカウントで認証されることはできますか? –

関連する問題