gpt4 book ai didi

django - 使用 token 身份验证时如何在 django channel 中的 websocket 连接中对用户进行身份验证

转载 作者:行者123 更新时间:2023-12-04 02:02:26 26 4
gpt4 key购买 nike

<分区>

我正在使用前端框架 ( Vuejs ) 和 django-rest-framework对于我项目中的 REST API。此外,对于 JSON Web token 身份验证,我使用 django-rest-framework-jwt .成功登录后,用户将获得一个 token 。此 token 会传递到每个请求中以获取任何与 API 相关的内容。

现在我想整合django channels进入我的项目。因此,登录成功后,当客户端收到 token 时,我想启动一个 websocket 连接。然后在服务器(消费者)上,我想检查请求的用户是否不是匿名的。如果请求的用户是匿名的,我想关闭连接或者接受它。

这就是我到目前为止的情况:

客户端:

const socket = new WebSocket("ws://" + "dev.site.com"+ "/chat/");

路由.py:

channel_routing = [
route("websocket.connect", ws_connect),
...
...
]

消费者:

def ws_connect(message):

# if the user is no anonymous
message.reply_channel.send({
"accept": True
})

# else
message.reply_channel.send({
"close": True
})

documentation有一个装饰器 @channel_session_user_from_http 将提供一个 message.user。但我使用的是 token 而不是 session 。使用 token 身份验证时如何检查连接用户,以便我可以接受或关闭连接。或者,如果有更好的方法,请告诉我。谢谢。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com