小编ary*_*yan的帖子

Django 通道自定义身份验证中间件 __call__() 缺少 2 个必需的位置参数:“接收”和“发送”

我正在为 Django 频道编写自定义身份验证中间件

class TokenAuthMiddleware:
    def __init__(self, inner):
        # Store the ASGI application we were passed
        self.inner = inner

    def __call__(self, scope):

        return TokenAuthMiddlewareInstance(scope, self)


class TokenAuthMiddlewareInstance:

    def __init__(self, scope, middleware):
        self.middleware = middleware
        self.scope = dict(scope)
        self.inner = self.middleware.inner

    async def __call__(self, receive, send):
        ## my logic to get validate user and store the user in user data
        ...
        ...
        ...
        self.scope['user'] = user_data
        inner = self.inner(self.scope)
        return await inner(receive, send)
Run Code Online (Sandbox Code Playgroud)

但是在尝试从前端连接到 Web 套接字时,我收到以下错误

TypeError: __call__() missing 2 required …
Run Code Online (Sandbox Code Playgroud)

django websocket django-channels

4
推荐指数
1
解决办法
2909
查看次数

标签 统计

django ×1

django-channels ×1

websocket ×1