Каналы Django: аутентификация от сценария websocket к серверу с каналом Django? - PullRequest
0 голосов
/ 23 сентября 2019

Как я могу проверить подлинность подключения через веб-сокет к серверу Django Channel?

Я использую приведенный ниже код для внешнего подключения к чату, управляемому Django Channels.Это работает нормально, но теперь мне нужно аутентифицировать это соединение.Есть идеи?

import asyncio
import websockets
from websockets import connect

class WebsocketConn:
    def __init__(self, uri):
        self.uri = uri

    def __await__(self):
        return self._async_init().__await__()

    async def _async_init(self):
        self._conn = connect(self.uri)
        self.websocket = await self._conn.__aenter__()
        return self

    async def close(self):
        await self._conn.__aexit__(*sys.exc_info())

    async def send(self, message):
        await self.websocket.send(message)

    async def receive(self):
        return await self.websocket.recv()



async def main():
    uri = "ws://ID_ADDRESS:8000/ws/chat/test/"
    webs_connection = await WebsocketConn(uri)
    #send and wait for receive
    webs_connection.send(json.dumps({'message':'Hello World!'}))
    message = webs_connection.receive()

asyncio.get_event_loop().run_until_complete(main())
...