0.3.6
chat v3
This commit is contained in:
@@ -22,7 +22,7 @@ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TWB.settings')
|
||||
|
||||
application = ProtocolTypeRouter({
|
||||
'http': get_asgi_application(),
|
||||
"websocket": AuthMiddlewareStack(
|
||||
"websocket": QueryAuthMiddleware(
|
||||
URLRouter(
|
||||
websocket_urlpatterns
|
||||
)
|
||||
|
||||
@@ -93,11 +93,11 @@ ASGI_APPLICATION = 'TWB.asgi.application'
|
||||
|
||||
CHANNEL_LAYERS = {
|
||||
'default': {
|
||||
# 'BACKEND': 'channels.layers.InMemoryChannelLayer'
|
||||
"BACKEND": "channels_redis.core.RedisChannelLayer",
|
||||
"CONFIG": {
|
||||
"hosts": [("127.0.0.1", 6379)],
|
||||
},
|
||||
'BACKEND': 'channels.layers.InMemoryChannelLayer'
|
||||
# "BACKEND": "channels_redis.core.RedisChannelLayer",
|
||||
# "CONFIG": {
|
||||
# "hosts": [("127.0.0.1", 6379)],
|
||||
# },
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
import json
|
||||
|
||||
from channels.db import database_sync_to_async
|
||||
|
||||
@database_sync_to_async
|
||||
def get_user(user_id):
|
||||
def get_user(data):
|
||||
from django.contrib.auth.models import User, AnonymousUser
|
||||
try:
|
||||
return User.objects.get(id=user_id)
|
||||
data = data.decode("utf-8")
|
||||
param_list = data.split('&')
|
||||
param_Dict = {item.split('=')[0]: item.split('=')[1] for item in param_list}
|
||||
return User.objects.get(id=param_Dict['user_id'])
|
||||
except User.DoesNotExist:
|
||||
return AnonymousUser()
|
||||
|
||||
@@ -21,6 +26,7 @@ class QueryAuthMiddleware:
|
||||
# Look up user from query string (you should also do things like
|
||||
# checking if it is a valid user ID, or if scope["user"] is already
|
||||
# populated).
|
||||
scope['user'] = await get_user(int(scope["query_string"]))
|
||||
data = scope['query_string']
|
||||
scope['user'] = await get_user(data)
|
||||
|
||||
return await self.app(scope, receive, send)
|
||||
Reference in New Issue
Block a user