Ich bin im Grunde nach einem login_required
/LoginRequiredMixin
Äquivalent für Django-Kanäle. Die Dokumente haben einen authentication section, der beschreibt, wie man einen Benutzer erhält, aber es scheint das Bit zu verpassen, wo Sie Benutzern den Zugriff verweigern, die nicht authentifiziert sind.Den Zugriff auf nicht authentifizierte Benutzer mit Djangokanälen verweigern
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
Wie soll ich die Verbindung verleugnen/Erniedrigungs wenn message.user.is_anonymous
wahr ist?
Kann ein Kanal geschlossen werden oder muss auf das Timeout gewartet werden? – jozxyqk
@jozxyqk: Wenn Sie die Verbindung explizit schließen möchten und nicht auf 'channels' warten wollen, um sie zu schließen, senden Sie' {"close": True} 'anstelle von' {"accept": True} '. Ich werde die Antwort aktualisieren. – hoefling