9

私のangularアプリは、スーパーユーザー(管理者)がユーザーデータを編集できるユーザー処理ページを備えています。彼は新しいユーザーを追加することは許可されていません (サインアップ ページがあり、独自の秘密のパスワードを選択します)。しかし、(私の論理によれば) ユーザーを削除できるはずです...

これはremoveUser() firebase-simple-login API ドキュメント ページであり、これは同じページの使用例です。

auth.removeUser(email, password, function(error) {
  if (error === null) {
    console.log("User removed successfully");
  } else {
    console.log("Error removing user:", error);
  }
});

したがって、アプリケーションはパスワードを知っているはずです...ユーザーがサインアップしているときに、ユーザーのパスワードをユーザーのデータに保存する必要がありますか?

しかし、この方法では、firebase-simple-login の主な利点を失うことになります (プライベート/機密データをローカルに保存することは避けてください)...

私の間違いを説明してください...

更新: Rob DiMarco のコメントのおかげで、この問題の背後にある理論的根拠を理解できるようになりました: removeUser() は、パスワードを再度提供した後、ユーザー自身が使用するように設計されています...管理者がアカウントを削除する必要がある場合は、ローカル ユーザーのメタデータに「削除済み」フラグを設定し、そのアカウントを Firebase にそのまま残す必要があります。ユーザーが同じアカウントを再アクティブ化することを決定する必要がある場合、ソフトウェアは単に「削除済み」フラグを削除auth.login()し、新しくユーザーが提供したユーザー名/パスワードで標準を実行する必要があります...

更新 2 : このアプローチの唯一の小さな問題 (問題がある場合) は、firebase-simple-login アカウントを削除していないため、「削除された」アカウントを回復したいユーザーが古いパスワードを覚えておく必要があることです...ただし、「ログイン」フォームでいつでもパスワードをリセットできます (メール アカウントの本当の所有者である場合)。

@Rob DiMarco:コメントを回答として投稿したい場合は、喜んで受け入れます...

4

1 に答える 1

3

ユーザー アカウントを完全に削除するのではなく、管理者専用のメタデータをユーザー アカウントに書き込むことでアカウントを無効にする方法をお勧めしますが、それらのレコードは Firebase に保存され、構造化されます。

次に、この「ロック」/「無効」フラグに対してセキュリティ ルールを使用し、ユーザー パスワードを保存する必要なく、必要な機能を取得できます。

于 2014-10-06T04:34:49.273 に答える