· 4 years ago · May 18, 2021, 03:12 PM
1def string_generator(data_incoming):
2 data = data_incoming.copy()
3 del data['hash']
4 keys = sorted(data.keys())
5 string_arr = []
6 for key in keys:
7 if data[key] is None:
8 string_arr.append(key + '=' + 'None')
9 else:
10 string_arr.append(key + '=' + data[key])
11 string_cat = '\n'.join(string_arr)
12 print(f"string_cat - keys {string_cat}")
13 return string_cat
14
15
16@auth.route('/tglogin')
17def logintg():
18 tg_data = {
19 "id": request.args.get('id', None),
20 "first_name": request.args.get('first_name', None),
21 "last_name": request.args.get('last_name', None),
22 "username": request.args.get('username', None),
23 "auth_date": request.args.get('auth_date', None),
24 "hash": request.args.get('hash', None)
25 }
26 print(tg_data)
27
28 data_check_string = string_generator(tg_data)
29 secret_key = hashlib.sha256('1883997977:AAFCMMwhEtIdGaoqs6GjHNOtfivDLQYLr9U'.encode('utf-8')).digest()
30 secret_key_bytes = secret_key
31 data_check_string_bytes = bytes(data_check_string, 'utf-8')
32 hmac_string = hmac.new(secret_key_bytes, data_check_string_bytes, hashlib.sha256).hexdigest()
33 if hmac_string == tg_data['hash']: