Djnago频道安全

时间:2019-10-18 10:26:47

标签: python django django-rest-framework django-channels

我正在研究Django频道,并且有这个问题:假设我有一个路由频道:

websocket_urlpatterns = [
    re_path(r'^ws/chat/(?P<id>[^/]+)/$', ChatConsumer),
]

事实证明,任何知道频道号的人都可以收听去往该地址的消息。也许您可以在套接字连接期间的某个时间发送数据(例如令牌)?

1 个答案:

答案 0 :(得分:0)

使用Auth中间件

示例

from django.conf.urls import url
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
from myapp import consumers

application = ProtocolTypeRouter({

"websocket": AuthMiddlewareStack(
    URLRouter([
        url(r"^front(end)/$", consumers.AsyncChatConsumer),
    ])
),

})