Сделать мою конечную точку 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/

Вернуться на верх