채팅 앱이 있고 로그인 한 사용자 만 웹 소켓에 연결할 수 있기를 원합니다.
어떻게 이룰 수 있습니까?
@login_required
Django 채널 의 데코레이터 와 같은 것이 있습니까?
문서를 통해 사용자에게 액세스하는 방법을 알고 있습니다.
class ChatConsumer(WebsocketConsumer):
def connect(self, event):
self.user = self.scope["user"]
그러나 사용자가 로그인하지 않은 경우 어떻게 연결을 거부합니까?
내 질문에 대한 답을 찾았습니다.
# mysite/routing.py
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
import chat.routing
application = ProtocolTypeRouter({
# (http->django views is added by default)
'websocket': AuthMiddlewareStack(
URLRouter(
chat.routing.websocket_urlpatterns
)
),
})
class ChatConsumer(WebsocketConsumer):
def connect(self):
self.user = self.scope['user']
if self.user.is_authenticated:
# accept connection if user is logged in
self.accept()
else:
# don't accept connection if user is not logged in
self.close()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다