我正在尝试保护后端的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
,但没有成功。
答案 0 :(得分:1)
这些登录端点是吗?如果是这样,则需要它们可以公开访问AFAIK。如果您想将其限制在您的应用程序中,那么我想在axios请求中向端点添加某种标头或访问令牌,这样,只有来自您应用程序的请求才有权使用该端点。在服务器上具有作为中间件的功能,用于检查特定的访问令牌或其他内容。