1

我正在使用 Django 频道构建一个聊天应用程序。现在,如果用户知道他们的网址,该应用程序允许用户观看任何聊天室。

我想限制对每个聊天室的访问,除了某些两个人。我如何在 Django 频道上实现这一点?一般来说,我如何只允许某些用户访问 Django 应用程序上的 url?

我的聊天应用程序中的聊天室网址如下。


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

4

1 回答 1

1

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

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

于 2016-11-26T08:19:31.547 回答