diff --git a/main.py b/main.py index ac3dfe1..8285364 100644 --- a/main.py +++ b/main.py @@ -9,6 +9,7 @@ import aiohttp from aiogram.fsm.context import FSMContext from aiogram.fsm.storage.memory import MemoryStorage from aiogram.fsm.state import State, StatesGroup +from hashlib import sha256 load_dotenv() @@ -116,24 +117,23 @@ async def send_welcome(message: types.Message): login = message.from_user.username token = None error = None + hash_value = sha256(f"{tg_id}sold".encode()).hexdigest() async with aiohttp.ClientSession() as session: - # 1. Пробуем получить токен try: - async with session.post(f'{API_URL}/token', json={'tg_id': tg_id}) as resp: - if resp.status == 200: - data = await resp.json() - token = data.get('access_token') + # 1. Пробуем авторизоваться по hash + async with session.post(f'{API_URL}/tg_auth', json={'hash': hash_value}) as auth_resp: + if auth_resp.status == 200: + token = hash_value else: - # 2. Если не ок — регистрируем + # 2. Если не найден — регистрируем async with session.post(f'{API_URL}/register', json={'tg_id': tg_id, 'chat_id': chat_id, 'name': name, 'login': login}) as reg_resp: if reg_resp.status == 200: - # 3. Пробуем снова получить токен - async with session.post(f'{API_URL}/token', json={'tg_id': tg_id}) as resp2: - if resp2.status == 200: - data = await resp2.json() - token = data.get('access_token') + # После регистрации снова пробуем авторизоваться + async with session.post(f'{API_URL}/tg_auth', json={'hash': hash_value}) as auth_resp2: + if auth_resp2.status == 200: + token = hash_value else: - error = 'Ошибка авторизации (token после регистрации)' + error = 'Ошибка авторизации после регистрации' else: error = 'Ошибка регистрации пользователя' except Exception as e: