Сделать мою конечную точку Django ограниченной, чтобы только я мог получить к ней доступ
Я очень новичок в вебсайтах.
Я пытаюсь обрабатывать платежи с помощью Stripe в JS-файле, и этот файл статический, то есть публичный. Я пытаюсь взять часть, которая делает API запрос с секретным ключом и переместить его в бэкенд, а затем вызвать бэкенд для получения ответа, который приходит от использования секретного ключа.
Однако, в настоящее время любой человек может сделать запрос, что противоречит цели того, что я делаю.
def payment(request):
return render(request, 'interface/about.html')
def get(self, request, *args, **kwargs):
return(HttpResponse("laterthere"))
urls.py
path('payment', views.payment, name="payment")
JS:
var resp1 = await fetch('https://url.com/payment', {
method: 'GET'
});
Есть ли какой-нибудь способ сделать это? Если вы предложите лучшее направление, пожалуйста, предоставьте ресурсы.
Вам необходимо добавить аутентификацию в ваш API. Так вы сможете назначать права пользователям, чтобы только они могли получить доступ к определенному логину. В качестве примера, представьте, что вы создаете свою модель User
, чтобы иметь свойство is_admin
(которое по умолчанию используется в django). Тогда вы можете проверить, является ли пользователь администратором.
def get(self, request, *args, **kwargs):
if request.user.is_admin:
return(HttpResponse("laterthere"))
else:
raise AuthenticationError
Вот дополнительная информация для DRF https://www.django-rest-framework.org/api-guide/authentication/