#django
#django
Вопрос:
У меня есть URL-адрес в моем приложении Django.
url(r'^settings/$', views.SettingsView.as_view(), name='settings')
Этот URL-адрес просто TemplateView
, который показывает HTML-страницу. Я не хочу, чтобы эта страница была доступна для общественности. Есть ли способ, чтобы только приложение могло получить к нему доступ? Например, приложение может вызывать этот URL-адрес и извлекать данные, но любой внешний пользователь не может. Есть ли способ сделать это?
Комментарии:
1. Что означает «только приложение»? Вы можете ограничить просмотр пользователей, имеющих определенные разрешения, включая системные учетные записи, используемые приложениями
2. Например, если пользователь пытается запросить конечную точку API, это может быть ограничено для них, потому что они поступают из внешнего домена. Однако само веб-приложение (веб-сайт) может запрашивать эту конечную точку, поскольку оно принадлежит тому же источнику, что и размещенный API.
3. Вы имеете в виду, что хотите реализовать CORS?
4. Да, я думаю, это то, что я хочу
5. Взгляните на этот пакет pypi.org/project/django-cors-headers
Ответ №1:
Вы можете обработать это в views.py . Проверьте источник в вашей функции следующим образом:
if request.META['HTTP_ORIGIN'] == "domain":
do somthing
else:
return 0
Комментарии:
1. Я считаю, что это не очень хорошее решение. Использование
CORS
более подходит.