Итак, я закончил так:
ользую интерфейс внешнего интерфейса (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
, Но я использую токен вместо сессии. Как я могу проверить пользователя на соединение при использовании токена аутентификации, чтобы я мог принять или закрыть соединение. Или, если есть лучший способ, пожалуйста, сообщите мне об этом. Спасибо.