2

私はノードを初めて使用し、次のアプリケーションの構築を開始したいと考えています。

アプリは、特定の企業が提供するサービスのカタログである必要があります。ユーザーは、リストされたサービス プロバイダーとともに、プロセスのステータスを開始および追跡できる必要があります。

したがって、4 つのデータベースがあります。

  1. 管理者
  2. ユーザー
  3. ビジネス
  4. プロセス

3 種類のユーザー:

  1. 管理者 = 私 (認証: ユーザー名 + パスワード)
  2. ビジネス (認証: ユーザー名 + パスワード)
  3. ユーザー(認証:facebook)

管理者には、すべてのデータベースに対する CRUD 権限が必要です。企業は、自社のプロファイル (提供されるサービス) に対してのみ CRUD を実行し、関連するプロセスを更新できます。ユーザーは進行中のプロセスに対して CRUD を実行できます。

everyauth、mongoose-auth、passport などの npm モジュールについてよく読んでいますが、特に 3 つの異なる権限と 4 つのデータベースを持つ 3 種類のユーザーがいる場合、mongodb などのデータベースとの関係を理解するのは困難です。ページが 3 つの異なる種類の Cookie を確認する方法がわかりません。

3 つの異なるログインおよび登録システムを作成する必要がありますか? はいの場合、どのように?

コードではなく、概念または関連するチュートリアルで助けてください。


Passport では、ユーザー名とパスワードの構成に次のものが必要です。

私が理解できないのは:

  1. 結果のデータベースはどこにありますか?
  2. 後でアクセスできる mongodb データベースに接続するにはどうすればよいですか?
  3. ユーザーを対応するログインページにリダイレクトするには、app.get() はどのように見えるべきですか?
  4. 対応する 3 つのデータベース (admin、business、user) を持つ 3 つの異なるログイン ページ (adminLogin、businessLogin、userLogin) にこれを実装するにはどうすればよいですか?
  5. 3 つの異なるホームページ (adminHome、businessHome、userHome) で正しいタイプの Cookie が利用可能かどうかを確認するにはどうすればよいですか?
4

1 に答える 1

3

私の推奨事項:

  1. 「特急」を使います。
  2. 「パスポート」をご利用ください。「mongoose-auth」は「everyauth」に基づいて構築されており、正常に動作しますが、「パスポート」の「戦略」コンセプトの柔軟性が気に入っており、「エクスプレス」統合の方が優れています。Passport Local 戦略で任意のデータベース/メソッド (LDAP など) を使用して資格情報を保存できます。これについては、パスポートのチュートリアルで説明されています。また、Passport Facebook 戦略は既に定義されており、すぐに使用できます。
  3. 可能であれば、3 つのユーザー グループごとに個別の高速ルート (URL) を用意します。同じルートで複数の認証戦略を管理することは、一見複雑で信頼性が低くなります。
  4. 企業やユーザーがデータベースに直接アクセスする必要が生じる可能性はほとんどありません。したがって、データベースには Web サーバーから db サーバーへの接続のみが必要です。したがって、Web サーバーが安全である場合、DB 認証はまったく必要ない可能性があります。必要な場合でも、その接続は管理者専用です。ただし、これらのMongo のセキュリティに関する推奨事項を読んで、潜在的なセキュリティの問題に注意する必要があります。
于 2013-01-08T02:04:25.083 に答える