Files
Fulfillment-Backend/auth/telegram.py
2024-03-01 00:07:25 +03:00

29 lines
758 B
Python

import hmac
import hashlib
import os
import settings
def _generate_hash(telegram_data: dict):
data = telegram_data.copy()
del data['hash']
keys = sorted(data.keys())
string_arr = []
for key in keys:
if data[key] is not None:
string_arr.append(key + '=' + str(data[key]))
string_cat = '\n'.join(string_arr)
secret_key = hashlib.sha256(settings.TELEGRAM_BOT_TOKEN.encode('utf-8')).digest()
hash_bytes = bytes(string_cat, 'utf-8')
hmac_hash = hmac.new(secret_key, hash_bytes, hashlib.sha256).hexdigest()
return hmac_hash
def telegram_authorize(telegram_data: dict):
generated_hash = _generate_hash(telegram_data)
user_hash = telegram_data['hash']
return generated_hash == user_hash