修复websocket不能使用Authorization Header的问题

This commit is contained in:
Huaqing Chen 2024-10-15 10:09:58 +08:00 committed by 老广
parent 2a781c228f
commit 1b8cdbc4dd

View File

@ -33,12 +33,12 @@ def get_signature_user(scope):
return return
if scope['type'] == 'websocket': if scope['type'] == 'websocket':
scope['method'] = 'GET' scope['method'] = 'GET'
try:
# 因为 ws 使用的是 scope所以需要转换成 request 对象,用于认证校验 # 因为 ws 使用的是 scope所以需要转换成 request 对象,用于认证校验
request = ASGIRequest(scope, None) request = ASGIRequest(scope, None)
backends = [SignatureAuthentication(), backends = [SignatureAuthentication(),
AccessTokenAuthentication()] AccessTokenAuthentication()]
for backend in backends: for backend in backends:
try:
user, _ = backend.authenticate(request) user, _ = backend.authenticate(request)
if user: if user:
return user return user