如何在 Django 中为每个请求添加过滤器?

时间:2021-02-03 08:41:21

标签: python django http security

我想添加一个安全过滤器,以便对我的 django 应用程序的每个请求都将首先通过过滤器,然后在标头中的令牌有效时让请求通过。

如何在 django 中实现这一点?

谢谢。

1 个答案:

答案 0 :(得分:0)

你可以像这样添加一个新的中间件:

class SecurityMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        token = request.META.get('HTTP_AUTHORIZATION')
        if token != "Some Value":
             return HttpResponse('Unauthorized', status=401)
        response = self.get_response(request)
        return response

然后将其添加到 MIDDLEWARE 中的 settings.py

MIDDLEWARE = [
    ...
    'path.to.SecurityMiddleware'
]

可以在 custom middleware 文档和 request and response object 文档中找到更多信息。

仅供参考,如果您想实现 JWT 或基本身份验证等标准身份验证系统,请考虑使用带有 Django Rest Framework 等的 Simple JWT 等第三方库。