Проверка подписи Twilio — Python — ошибка отправки запросаPython

Программы на Python
Ответить
Anonymous
 Проверка подписи Twilio — Python — ошибка отправки запроса

Сообщение Anonymous »

Я пытаюсь реализовать функцию Python для проверки подписи почтового запроса. Однако ожидаемая подпись (с использованием Compute_signature) не соответствует тому, что предоставлено запросом Twilio, поэтому функция проверки всегда возвращает False. Я попробовал несколько различных перестановок, чтобы получить параметры формы, но не смог добиться соответствия ожидаемой подписи.
Подход к получению URL-адреса и параметров соответствует учебнику Twilio: связан. AUTH_TOKEN соответствует значению в консоли Twilio (информация об учетной записи). Кто-нибудь сталкивался с этой проблемой и нашел решение?

Код: Выделить всё

from fastapi.security.api_key import APIKeyHeader
from fastapi import Security, HTTPException, Request
from twilio.request_validator import RequestValidator

signature_header = APIKeyHeader(name="X-Twilio-Signature", auto_error=False)

async def validate_signature(request: Request, signature: str = Security(signature_header)):
if not signature:
raise HTTPException(403, "No signature provided")

validator = RequestValidator(settings.AUTH_TOKEN)
url = str(request.url)
params = dict(await request.form())

print(f"Twilio signature: {signature}")
print(f"Expected signature: {validator.compute_signature(url, params)}")

if not validator.validate(url, params, signature):
raise HTTPException(403, "Signature verification failed")

return True
Я реализовал код из руководства по Twilio точно — и это тоже не работает. Я также рассмотрел реализацию request_validator.py Twilio: ссылка, которая, похоже, в порядке.

Подробнее здесь: https://stackoverflow.com/questions/792 ... quest-fail
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»