首页 > 解决方案 > 使用 Websockets 通过 Http 进行 Django 身份验证

问题描述

我正在这样做——

加载单页应用程序 - 使用 websocket 和 http 链接初始化 apollo 客户端。比如说,当用户注销时会发生这种情况。

然后,用户无需重新加载页面即可登录。graphql 响应现在包含会话 cookie。

问题 - 虽然随后的 http 请求包含会话 cookie,但 websocket 连接不包含。

人们如何解决这个问题?

我猜在客户端上我可以通过 websockets 与服务器进行所有通信,或者在成功登录后创建一个新的 apollo 客户端并将其用于订阅。

是否有可能以某种方式将会话 cookie 传递给客户端上已经建立的 websocket?我正在使用 django 频道。我知道它有一个登录功能,但我相信这是登录通过 websockets 提出请求的用户。

这是一个聊天应用程序。但是 websockets 在大多数 web 应用程序中显然很常见。例如通知系统。当然,对于大多数网络应用程序,您会使用 http 和 websocket。所以我想知道人们是如何做到这一点的。

标签: djangodjango-channelsgraphene-django

解决方案


推荐阅读