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

时间:2016-11-26 06:51:37

标签: django django-channels

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

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

我的聊天应用中的聊天室网址正在关注。

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

1 个答案:

答案 0 :(得分:0)

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

对于Django频道,你必须做一些相似的事情。为了举个例子,我们假设你使用的是WebSockets。您可以做的是设置一个在每个订阅者中发送的令牌'请求,然后将该令牌映射到用户。如果映射满足您的所有条件(是映射到可以访问端点的用户之一的有效令牌),则将它们添加到组中,否则不会。 Here是您可以使用的JWT令牌的指南。