我基本上是在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
爲真,我該如何拒絕/丟棄連接?
頻道可以關閉還是需要等待超時? – jozxyqk
@jozxyqk:當然,如果你想明確地關閉連接並且不想等待'channels'關閉它,發送'{「close」:True}'而不是'{「accept」:True}'。我會更新答案。 – hoefling