保护 GET 和 POST 端点?



我正在尝试保护后端的GET和POST端点。用户未登录,但我想阻止 ppl 访问 API 端点,除非他们正在使用我的应用程序。

我正在使用React和axios来发出请求,Django和Python接受请求。我正在尝试使用 CSRF 装饰器:

class ClassView(View):
@method_decorator(csrf_protect)
def get(self, request):
# Protected endpoint.
@method_decorator(csrf_protect)
def post(self, request):
# Protected endpoint.

这不起作用,因为我仍然可以直接转到 API 端点并发出请求。我也尝试过@requires_csrf_token@csrf_protect都没有成功。

这些是登录端点吗?如果是这样,您需要公开访问它们 AFAIK。如果您想将其限制在您的应用程序中,那么我想在您的 axios 请求中添加某种标头或访问令牌到端点,这样只有来自您的应用程序的请求才有权使用端点。在服务器上有一个作为中间件的功能,检查该特定的访问令牌或其他内容。

最新更新