如何使用Django通道对Websocket进行身份验证?

时间:2020-09-10 15:37:32

标签: django authentication websocket django-channels

应用程序堆栈如下所示: 后端:Django DRF +频道,
用于身份验证的我正在使用:

    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ),

前端(django后端不提供):Vue JS应用程序,使用生成的客户端(@ openapitools / openapi-generator-cli“)库对后端进行身份验证/执行操作。 我可以使用基于rest的身份验证,检索可用于以下rest-api调用的令牌,但是我也想在vue websocket <-> django通道通信中使用该令牌。

问题是:

  • 如何在渠道使用方上使用身份验证?如果我登录django admin页面,传入的websocket连接会立即识别范围内的admin用户,但是如果我使用任何其他身份验证,则不会。

  • 我在这里看到的是使用默认的管理页面登录名,它将sessionid和csrf令牌另存为cookie。

  • 当我尝试使用客户端api调用复制相同的身份验证行为时,我可以在浏览器网络流量上看到发送了正确的Set-Cookies,其中包含此信息,但是我无法设置。是否应默认设置?我想念什么?

0 个答案:

没有答案
相关问题