feat: Удалена HTTP авторизация
This commit is contained in:
@@ -24,7 +24,6 @@ class Server:
|
||||
self._server_token: str = ''
|
||||
self._server_username = server_username
|
||||
self._server_password = server_password
|
||||
self._client_password = client_password
|
||||
|
||||
self._logger = logging.getLogger(__name__)
|
||||
self._logger.addHandler(logging.NullHandler())
|
||||
@@ -76,36 +75,11 @@ class Server:
|
||||
_ = pyg2o_main
|
||||
_ = pyg2o_client
|
||||
|
||||
async def _verify_token(self, credentials: HTTPBasicCredentials):
|
||||
username = credentials.username
|
||||
password = credentials.password
|
||||
|
||||
if username == self._server_username and password == self._server_password:
|
||||
token = self._create_server_token()
|
||||
if token is None:
|
||||
raise HTTPException(status_code=403)
|
||||
return token
|
||||
elif password == self._client_password:
|
||||
...
|
||||
|
||||
return None
|
||||
|
||||
def _create_server_token(self) -> str | None:
|
||||
self._server_token = str(uuid4())
|
||||
return self._server_token
|
||||
|
||||
async def _handle_auth_connection(self, credentials: HTTPBasicCredentials):
|
||||
response: str | None = await self._verify_token(credentials)
|
||||
if response is None:
|
||||
raise HTTPException(status_code=401)
|
||||
|
||||
return {'token': response}
|
||||
|
||||
async def _handle_server_connection(self, websocket: WebSocket):
|
||||
headers = websocket.headers
|
||||
uuid = headers.get('Authorization')
|
||||
password = headers.get('Authorization')
|
||||
|
||||
if uuid != self._server_token:
|
||||
if password != self._server_password:
|
||||
# Закрытие до принятия подключения выбрасывает 403 (Forbidden) код, так что не нужны доп сообщения
|
||||
await websocket.close()
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user