我正在使用 Django 频道构建一个聊天应用程序。现在,如果用户知道他们的网址,该应用程序允许用户观看任何聊天室。
我想限制对每个聊天室的访问,除了某些两个人。我如何在 Django 频道上实现这一点?一般来说,我如何只允许某些用户访问 Django 应用程序上的 url?
我的聊天应用程序中的聊天室网址如下。
我正在使用 Django 频道构建一个聊天应用程序。现在,如果用户知道他们的网址,该应用程序允许用户观看任何聊天室。
我想限制对每个聊天室的访问,除了某些两个人。我如何在 Django 频道上实现这一点?一般来说,我如何只允许某些用户访问 Django 应用程序上的 url?
我的聊天应用程序中的聊天室网址如下。
在 Django 应用程序(目前没有通道)中,您首先要强制执行身份验证(例如使用login_required装饰器),然后检查request.user
您想要满足的任何条件。有很多方法可以实现这一点,但我想我描述的一种是最简单的。
至于 Django Channels,你将不得不做一些类似的事情。举个例子,假设您正在使用WebSockets
. 您可以做的是设置在每个“订阅”请求中发送的令牌,然后将该令牌映射到用户。如果映射满足您的所有条件(是映射到可以访问端点的用户之一的有效令牌),则将它们添加到组中,否则不添加。这是您可以使用的 JWT 令牌的指南。