Добавлена авторизация через хэш в функции send_welcome. Упрощена логика получения токена и регистрации пользователя.
This commit is contained in:
parent
9a3639b5ff
commit
9f215802a6
24
main.py
24
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:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user