保护GET和POST端点?

时间:2019-10-17 15:18:27

标签: python django api

我正在尝试保护后端的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,但没有成功。

1 个答案:

答案 0 :(得分:1)

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