temporary fix for websockets
This commit is contained in:
parent
e45a1f271e
commit
e43d4837c3
7 changed files with 63 additions and 17 deletions
|
@ -19,12 +19,45 @@ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
|
|||
|
||||
django_asgi_app = get_asgi_application()
|
||||
|
||||
|
||||
class TokenAuthMiddleware:
|
||||
"""
|
||||
Token authorization middleware for Django Channels 2
|
||||
"""
|
||||
|
||||
def __init__(self, inner):
|
||||
self.inner = inner
|
||||
|
||||
def __call__(self, scope):
|
||||
import base64
|
||||
headers = dict(scope['headers'])
|
||||
if b'authorization' in headers:
|
||||
try:
|
||||
token_name, token_key = headers[b'authorization'].decode().split()
|
||||
if token_name == 'Basic':
|
||||
b64 = base64.b64decode(token_key)
|
||||
user = b64.decode().split(':')[0]
|
||||
password = b64.decode().split(':')[1]
|
||||
print(user, password)
|
||||
else:
|
||||
print("Token name is not Basic")
|
||||
scope['user'] = None
|
||||
except:
|
||||
print("Token is not valid")
|
||||
scope['user'] = None
|
||||
else:
|
||||
print("Token is not in headers")
|
||||
scope['user'] = None
|
||||
|
||||
|
||||
TokenAuthMiddlewareStack = lambda inner: TokenAuthMiddleware(AuthMiddlewareStack(inner))
|
||||
|
||||
websocket_asgi_app = AllowedHostsOriginValidator(
|
||||
#AuthMiddlewareStack(
|
||||
AuthMiddlewareStack(
|
||||
URLRouter(
|
||||
websocket_urlpatterns
|
||||
)
|
||||
#)
|
||||
)
|
||||
)
|
||||
|
||||
application = ProtocolTypeRouter({
|
||||
|
|
|
@ -184,7 +184,7 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
|||
|
||||
CHANNEL_LAYERS = {
|
||||
'default': {
|
||||
'BACKEND': 'asgi_redis.RedisChannelLayer',
|
||||
'BACKEND': 'channels_redis.core.RedisChannelLayer',
|
||||
'CONFIG': {
|
||||
'hosts': [('localhost', 6379)],
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue