1

私のチームが取り組んでいる Django プロジェクトがあります。その下に複数の企業を管理するための管理パネルがあります。新しい会社をシステムに追加するには、管理者がパネルを使用して会社のドメインを追加します。これらのドメインは、実際には私たちのシステムを指しています。会社を URL で検出し、その会社のドメインに従ってビューを管理します。例: その会社の下にあるユーザーを表示し、その会社の下で取引を行います。ユーザー情報、会社の詳細、メンバーなどの会社のすべての情報は、プロジェクトのメイン データベースに保存されます。ユーザーはメールでログインします。そのため、Django の認証モデルを使用してデータベース内のメール フィールド (またはユーザー名) を一意にすることはできません。これは、メール ユーザーが知らないうちに複数の異なる会社に登録できるためです。

回答を求めている質問:

  • ユーザーにランダムなユーザー名を設定しますが、最初のパラメーターが USERNAME_FIELD で定義されたパラメーターになるため、syncdb の後にコマンド ラインでスーパー ユーザーを作成するときに問題が発生します。この一意のユーザー名フィールドの問題に対処するにはどうすればよいですか?

  • 会社ごとに異なるユーザー テーブルを作成します。もしそうなら、これを自動的に行う方法は?

4

1 に答える 1

0

複雑なユーザー / ID 管理シナリオに遭遇する可能性があるようです。ある種のシングル サインオンの使用を検討してください。ID ブローカーの開発に役立つ、Django に適したソリューションがいくつかあります。

django.contrib.auth の OpenID 統合 https://launchpad.net/django-openid-auth

私は OpenID をサポートする OpenAm を使用しています。Django を使用した シングル サインオン (SSO) の実装の例をいくつか示した投稿です。

Django ソーシャル認証 https://github.com/omab/django-social-auth

または、「電子メール アドレスを使用した Django 認証」を試すこともでき ます http://www.micahcarrick.com/django-email-authentication.html

于 2013-12-17T15:50:07.337 に答える