1

Django チャネルを使用してチャット アプリを構築しています。現在、このアプリでは、ユーザーが URL を知っていれば、チャット ルームを視聴できるようになっています。

特定の2人を除いて、各チャットルームへのアクセスを制限したい。Django チャネルでそれを実現するにはどうすればよいですか? 一般的に、特定のユーザーのみがDjangoアプリのURLにアクセスできるようにするにはどうすればよいですか?

私のチャット アプリのチャット ルームの URL は次のとおりです。


url(r'^(?P[\w-]{,50})/$', views.chat_room, name='chat_room')

4

1 に答える 1

1

Django アプリ (現時点ではチャネルなし) では、最初に認証を強制し (たとえばlogin_requiredデコレータを使用)、次にrequest.user満たす必要のある条件を確認します。これを達成する方法はたくさんありますが、私が説明した方法が最も簡単だと思います。

Django Channels に関しては、かなり似たようなことをする必要があります。例として、 を使用しているとしますWebSockets。あなたができることは、すべての「サブスクライブ」リクエストで送信されるトークンを設定し、そのトークンをユーザーにマップすることです。マッピングがすべての基準を満たしている (エンドポイントにアクセスできるユーザーの 1 人にマップされている有効なトークンである) 場合は、それらをグループに追加し、そうでない場合は追加しません。使用できる JWT トークンのガイドを次に示します。

于 2016-11-26T08:19:31.547 に答える