Django を使用して 3 つのサイトのネットワークに単一のログインとプロファイルを作成するにはどうすればよいですか?
私は 3 つのサイトのネットワークを持っており、ユーザーが 3 つのサイトのそれぞれでプロファイルを作成する代わりに、ユーザーが 1 回登録するだけで 3 つすべてを使用できるようにしたいと考えています。
この問題に対するエレガントな解決策はありますか?
サイトがデータベースを共有できるようにします。したがって、それらは共通のユーザー テーブルを持ちます。
django サイト フレームワークを見てみましょう: http://docs.djangoproject.com/en/dev/ref/contrib/sites/
サーバーによって異なります。
すべてのサイトが同じ DB にアクセスできますか? 次に、dcrodjer の回答を使用します。
そうでない場合は、他のサイトが認証する OAuth スタイルのシングル サインオン サービスを実装できます。
例: site1.example.com site2.example.com site3.example.com siteN.example.com
oauth.example.com に対して認証します
これらの 3 つのサイトを 1 つのドメインのサブドメインに入れることができれば、Django が提供するものに固執できることはほぼ間違いありません。私が書いていることは、次のようなものです。
site1.mydomain.com site2.mydomain.com site3.mydomain.com
-- ログインは mydomain.com で実装されます。
基本的に、mydomain.com は、ログイン フォームのみを実装し、 「.mydomain.com」ドメインのセッションを維持する小さな Django ページを提供する必要があります(先頭のドットに注意してください - セッションが site1..3 サブドメインに伝播するために必要です)。したがって、mydomain.com にログインすると、実質的に 3 つのサブサイトすべてにログインしたことになります。
サーバー側の認証とセッション データを共有する最も簡単な方法は、ubsite 1、2、3 で 2 つのデータベースを使用することです。1 つの小さなデータベースは認証とセッション データ用に mydomain.com と共有され、もう 1 つは特定のサイトに固有です。