Итак, я закончил так:

ользую интерфейс внешнего интерфейса (Vuejs) а такжеДжанго-отдых-рамка для REST API в моем проекте. Кроме того, для аутентификации веб-токена JSON я используюДжанго-отдых-каркасного JWT, После успешного входа в систему пользователю предоставляется токен. Этот токен передается в каждый запрос для извлечения любого материала, связанного с API.

Теперь я хотел бы интегрироватьДжанго каналы в мой проект. Итак, после успешного входа в систему, когда токен получен на стороне клиента, я хотел бы установить соединение через веб-сокет. Затем на сервере (потребитель) я хотел бы проверить, не является ли запрашиваемый пользователь анонимным. Если запрашиваемый пользователь является анонимным, я хотел бы закрыть соединение или принять его.

Вот как у меня до сих пор:

сторона клиента:

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

routing.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
    })

вдокументация есть декоратор@channel_session_user_from_http который обеспечитmessage.user, Но я использую токен вместо сессии. Как я могу проверить пользователя на соединение при использовании токена аутентификации, чтобы я мог принять или закрыть соединение. Или, если есть лучший способ, пожалуйста, сообщите мне об этом. Спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос