2016-10-25 1 views
0

私は既にWEBsiteにユーザー認証を用意しています。 私は、このアカウントのユーザーがリンクcorporate_account_name.main_domain.comにアクセスできるように、機能的なコーポレートアカウントを実装する必要があり、main_domain.comと同じサイトを、特にこのバージョンのみに見ました。ウェブサイトに企業アカウントを実装するにはどうすればよいですか?

どうやってどこを掘るのですか? (または少なくとも技術、フレームワークのリスト):

  1. すべてのサブドメインのコードは1つですか?
  2. サブドメインごとに個別のデータベースを作成しますか?同時に、main_domainからすべてのサブドメイン(またはその逆)(subdomain - > main_domain)にデータにアクセスする必要があります。
  3. データベースデータの長期移行を更新する必要がある可能性があります。この場合、すべてのサブドメインは、更新されたベースの1つになるまで凍結しないことが必要です。
  4. サーバーがApacheにあります。ビジネスアカウントを作成するたびに、この再起動のapacheは不可能です。
  5. 企業アカウントは、標準のユーザー登録と同様に、Webインターフェイスmain_domain.com(自動)に作成されます。手動ではしないでください!
  6. djangoが望ましいです。
+1

は、私が参考になると信じて、この質問/答えを見てみましょう:私は言及する必要がありhttp://stackoverflow.com/questions/10738175/pass-subdomain-as-parameter – sberry

+0

を、あなたは答えを使用することができますI一般的なアイデアのためにリンクされています。クエリ文字列パラメータとしてサブドメインの値を渡す必要はありません。おそらく私はその値を環境変数として設定して、ユーザーにはわからないようにします。 – sberry

+1

あなたは[django-tenant-schemas](https://django-tenant-schemas.readthedocs.io/en/latest/index.html)に興味があります – devxplorer

答えて

0

django-tenant-schemasパッケージがあります。あなたのニーズに完全に合っているようです。

(ドキュメントから)、それがどのように動作するかの簡単な説明:

テナントは、そのホスト名(すなわちtenant.domain.com)を介して識別されます。この情報は、パブリック・スキーマの表に格納されます。リクエストが行われるたびに、ホスト名がデータベースのテナントと一致するために使用されます。一致するものがあれば、このテナントのスキーマを使用するように検索パスが更新されます。今からすべてのクエリはテナントのスキーマで行われます。たとえば、customer.example.comにテナント顧客がいるとします。 customer.example.comで受信したリクエストは、自動的に顧客のスキーマを使用し、リクエストでテナントを利用可能にします。テナントが見つからない場合、404エラーが発生します。これはまた、通常はパブリックスキーマを使用して、メインドメインのテナントが必要であることを意味します。

関連する問題