Я использую пакет django-twilio для защиты от подделки django-twilio документы для защиты от подделки
У меня есть приложение для отправки текстовых сообщений django, которое используется для отправки автоматических сообщений непосредственно через мой мобильный телефонMessenger, а также с моего веб-сайта во время входа в систему. Когда DJANGO_TWILIO_FORGERY_PROTECTION = False, обе платформы, использующие мое приложение для текстовых сообщений django, работают.
Когда DJANGO_TWILIO_FORGERY_PROTECTION = True, работает только мессенджер мобильного телефона, и веб-сайт получает 403 Запрещено.
Как это можно исправить, поддерживая как можно большую безопасность и поддерживая одно и то же приложение как функциональное для мобильного телефона и веб-сайта.
Я знаю, что проблема заключается в том, чтобы сделатьс @twilio_view decorator
send-text.html
<form action="{% url 'text-send' %}" enctype="multipart/form-data" method="POST">
{% csrf_token %}
<input type="text" name="Body" required>
<input type="submit" >
</form>
Вот мое приложение для отправки текстовых сообщений:
@twilio_view
def sendtext(request, reviewpk):
if request.method == "POST":
ACCOUNT_SID = settings.TWILIO_ACCOUNT_SID
AUTH_TOKEN = settings.TWILIO_AUTH_TOKEN
client = Client(ACCOUNT_SID, AUTH_TOKEN)
message_body = request.POST['Body']
client.messages.create(
to= "+13231342344",
from_="+14571342764",
body=message_body
)
return confirm_things(request)
def confirm_things(request):
if 'HTTP_X_TWILIO_SIGNATURE' in request.META:
resp = MessagingResponse()
resp.message("good job message was sent")
return HttpResponse(str(resp), content_type='text/xml')
return HttpResponseRedirect(reverse('dashboard'))
urls.py
urlpatterns = [
path('textsend/', views.sendtext, name='text-send'),
path('dashboard/', views.dash, name='dash'),
]