Django チャネルを使用してチャット アプリを構築しています。現在、このアプリでは、ユーザーが URL を知っていれば、チャット ルームを視聴できるようになっています。
特定の2人を除いて、各チャットルームへのアクセスを制限したい。Django チャネルでそれを実現するにはどうすればよいですか? 一般的に、特定のユーザーのみがDjangoアプリのURLにアクセスできるようにするにはどうすればよいですか?
私のチャット アプリのチャット ルームの URL は次のとおりです。
Django チャネルを使用してチャット アプリを構築しています。現在、このアプリでは、ユーザーが URL を知っていれば、チャット ルームを視聴できるようになっています。
特定の2人を除いて、各チャットルームへのアクセスを制限したい。Django チャネルでそれを実現するにはどうすればよいですか? 一般的に、特定のユーザーのみがDjangoアプリのURLにアクセスできるようにするにはどうすればよいですか?
私のチャット アプリのチャット ルームの URL は次のとおりです。
Django アプリ (現時点ではチャネルなし) では、最初に認証を強制し (たとえばlogin_requiredデコレータを使用)、次にrequest.user
満たす必要のある条件を確認します。これを達成する方法はたくさんありますが、私が説明した方法が最も簡単だと思います。
Django Channels に関しては、かなり似たようなことをする必要があります。例として、 を使用しているとしますWebSockets
。あなたができることは、すべての「サブスクライブ」リクエストで送信されるトークンを設定し、そのトークンをユーザーにマップすることです。マッピングがすべての基準を満たしている (エンドポイントにアクセスできるユーザーの 1 人にマップされている有効なトークンである) 場合は、それらをグループに追加し、そうでない場合は追加しません。使用できる JWT トークンのガイドを次に示します。