Update app.py
Browse files
app.py
CHANGED
@@ -1020,12 +1020,15 @@ def is_valid(*, query: dict, secret: str) -> bool:
|
|
1020 |
"""Check VK Apps signature"""
|
1021 |
logging.debug(f"Checking signature for query: {query}")
|
1022 |
|
1023 |
-
#
|
1024 |
hash_code = b64encode(HMAC(secret.encode(), urlencode(query, doseq=True).encode(), sha256).digest())
|
1025 |
|
1026 |
# Декодируем base64 и заменяем символы
|
1027 |
decoded_hash_code = hash_code.decode('utf-8')[:-1].replace('+', '-').replace('/', '_')
|
|
|
|
|
1028 |
logging.debug(f"Calculated signature: {decoded_hash_code}")
|
|
|
1029 |
|
1030 |
# Сравниваем подпись из запроса с вычисленной
|
1031 |
return query.get("sign") == decoded_hash_code
|
@@ -1059,7 +1062,7 @@ def get_order():
|
|
1059 |
|
1060 |
# Нужно добавить проверку подписи
|
1061 |
if not is_valid(query=request.form, secret=secret_key):
|
1062 |
-
logging.error("Invalid signature")
|
1063 |
return jsonify({"error": "Invalid signature"}), 400
|
1064 |
|
1065 |
# Проверка наличия vk_id и order
|
|
|
1020 |
"""Check VK Apps signature"""
|
1021 |
logging.debug(f"Checking signature for query: {query}")
|
1022 |
|
1023 |
+
# Сортировка параметров и вычисление хеша
|
1024 |
hash_code = b64encode(HMAC(secret.encode(), urlencode(query, doseq=True).encode(), sha256).digest())
|
1025 |
|
1026 |
# Декодируем base64 и заменяем символы
|
1027 |
decoded_hash_code = hash_code.decode('utf-8')[:-1].replace('+', '-').replace('/', '_')
|
1028 |
+
|
1029 |
+
# Логируем вычисленную и присланную подпись
|
1030 |
logging.debug(f"Calculated signature: {decoded_hash_code}")
|
1031 |
+
logging.debug(f"Received signature: {query.get('sign')}")
|
1032 |
|
1033 |
# Сравниваем подпись из запроса с вычисленной
|
1034 |
return query.get("sign") == decoded_hash_code
|
|
|
1062 |
|
1063 |
# Нужно добавить проверку подписи
|
1064 |
if not is_valid(query=request.form, secret=secret_key):
|
1065 |
+
logging.error(f"Invalid signature for request: {request.form}")
|
1066 |
return jsonify({"error": "Invalid signature"}), 400
|
1067 |
|
1068 |
# Проверка наличия vk_id и order
|