crappy
This commit is contained in:
0
auth/__init__.py
Normal file
0
auth/__init__.py
Normal file
28
auth/telegram.py
Normal file
28
auth/telegram.py
Normal file
@@ -0,0 +1,28 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user