django channels:除了某些两个人之外,如何限制对聊天室的访问?

django channels: how to restrict access to a chat room except certain two people?

我正在使用 Django 频道构建一个聊天应用程序。现在,该应用程序允许用户观看任何聊天室,前提是他们知道 url 适合他们。

我想限制除了某些两个人之外的每个聊天室的访问权限。 我如何在 Django 频道上意识到这一点? 一般情况下,如何只允许特定用户访问 Django 应用程序上的 url?

Url 正在关注我的聊天应用程序中的聊天室。


url(r'^(?P[\w-]{,50})/$', views.chat_room, name='chat_room')

在 Django 应用程序(目前没有渠道)中,您要做的是首先执行身份验证(例如使用 login_required 装饰器),然后检查 request.user 是否有任何您想要的条件满足。有很多方法可以实现这一点,但我想我描述的方法是最简单的。

至于 Django Channels,您将不得不做一些非常相似的事情。举个例子,假设您正在使用 WebSockets。您可以做的是设置一个在每个 'subscribe' 请求中发送的令牌,然后将该令牌映射到用户。如果映射满足您的所有条件(是映射到可以访问端点的用户之一的有效令牌),则将它们添加到组中,否则不添加。 Here 是您可以使用的 JWT 令牌指南。