ОБНОВЛЕНИЕ:
Я хочу реализовать чат с мобильным приложением. Пользователи мобильных приложений не являются пользователями Django, поэтому Django не может их авторизовать.
Не могу понять, как не использовать AuthMiddlewareStack при маршрутизации. Теперь мой код:
application = ProtocolTypeRouter({
'websocket': AllowedHostsOriginValidator(
AuthMiddlewareStack(
URLRouter(
[
url(r"leadusers/(?P<pk>\d+)/(?P<chatid>[\w-]+)/$", LeadUserConsumer, name='leaduser_consumer'),
]
)
),
),
})
Я пытался удалить только этот класс AllowedHostsOriginValidator - не работает.
Может быть, ответ при создании пользовательской аутентификации?
class QueryAuthMiddleware:
"""
Custom middleware (insecure) that takes user IDs from the query string.
"""
def __init__(self, inner):
# Store the ASGI application we were passed
self.inner = inner
def __call__(self, scope):
# Look up user from query string (you should also do things like
# check it's a valid user ID, or if scope["user"] is already populated)
user = User.objects.get(id=int(scope["query_string"]))
close_old_connections()
# Return the inner application directly and let it run everything else
return self.inner(dict(scope, user=user))
Может быть, кто-нибудь знает? Помогите, пожалуйста.