私は基本的にdjangoチャンネルに相当するlogin_required
/LoginRequiredMixin
の後です。ドキュメントにはauthentication sectionがありますが、これはユーザーの取得方法を説明していますが、認証されていないユーザーへのアクセスを実際に拒否している部分は見逃しているようです。djangoチャンネルで認証されていないユーザーへのアクセスを拒否する
from channels.generic.websockets import JsonWebsocketConsumer
class MyConsumer(JsonWebsocketConsumer):
channel_session_user = True
def connection_groups(self, **kwargs):
return ["test"]
def connect(self, message, **kwargs):
print message.user # AnonymousUser
self.send({"accept": True}) # False here still accepts and sends a message
どのように私はmessage.user.is_anonymous
がtrueの場合、接続をドロップ/拒否すべきですか?
チャネルを閉じたり、タイムアウトを待つ必要がありますか? – jozxyqk
@jozxyqk:あなたが明示的に接続を閉じ、 'channels'がそれを閉じるのを待たずに、' {"close":True} 'を' {"accept":True} 'の代わりに送信したいのであれば、私は答えを更新します。 – hoefling