gpt4 book ai didi

Django手动检查CSRF token

转载 作者:行者123 更新时间:2023-12-04 03:27:05 25 4
gpt4 key购买 nike

我正在实现一个可以使用 API key 或 CSRF token 的 API。目标是让 Web 应用程序(受 CSRF 保护)或第三方应用程序(受 API key 保护)都可以使用它。

基本上在每个请求上(全部通过 POST),我检查是否有 API key 。如果有一个有效的,这是很好的去。如果没有,我想回退到验证 CSRF。

我可以调用一个函数来自己验证 CSRF 吗? View 本身是 @csrf_exempt因为 API key 需要工作。

最佳答案

您可能可以继承 CsrfViewMiddleware 类并覆盖 process_view 方法。然后包含您的自定义中间件,而不是默认的 CSRF 中间件。

from django.middleware.csrf import CsrfViewMiddleware

class CustomCsrfMiddleware(CsrfViewMiddleware):

def process_view(self, request, callback, callback_args, callback_kwargs):
if request.META.get('api_key'):
# process api key
else:
return super(CsrfViewMiddleware, self).process_view(...)

关于Django手动检查CSRF token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29454296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com