在 api 视图方法上禁用 CSRF(django rest 框架)
Posted
技术标签:
【中文标题】在 api 视图方法上禁用 CSRF(django rest 框架)【英文标题】:Disable CSRF on api view method(django rest framework) 【发布时间】:2018-08-12 08:27:59 【问题描述】:我有这样的api方法:
@api_view(['POST'])
@login_required
def get_posts(request):
# ...
如何仅在此方法上禁用 CSRF?
【问题讨论】:
【参考方案1】:对于基于函数的视图,您通常可以使用装饰器csrf_exempt
:
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse
@csrf_exempt
def my_view(request):
return HttpResponse('Hello world')
更新:DRF
可能有一个例外。看看here。
【讨论】:
为什么要从示例中删除 @api_view()? 因为api_view
仅适用于 DRF。我想解释一下装饰器csrf_exempt
不是特定于 DRF 的。因此,我更新了答案并将其链接到另一个 SO 问题,该问题更详细地解释了另一个相关的警告(身份验证)。以上是关于在 api 视图方法上禁用 CSRF(django rest 框架)的主要内容,如果未能解决你的问题,请参考以下文章