如何将我的应用程序配置为只接受来自三个明确指定的客户端的连接



所以我有一个Django应用程序,它是我编写的另一个应用程序的后端。我只想从另一个应用程序访问我的Django应用程序,它可能有几个版本(生产、暂存、dev1、dev2)。如何配置我的Django应用程序,使其只接受来自这几个客户端的连接?

如果我很理解你想要控制对Django应用程序的访问,一个选项是添加一个自定义中间件来检查用户的IP,如果不允许,你可以显示错误,或者重定向到其他网站或任何你想要的。

class CheckIPMiddleware(object):
    # Check if client IP is allowed
    def process_request(self, request):
        allowed_ips = ['192.168.1.1', '123.123.123.123', etc...]
        ip = request.META.get('REMOTE_ADDR')  # Get client IP
        if ip not in allowed_ips:
           # Here you can raise a 403 Forbidden
           # or redirect to any other site/page
        # If user is allowed nothing happens
        return None

如果这对你有用,你必须记住两件事:

  • 按照以下路径向文件添加代码:your_project/middleware/checkipmiddleware.py
  • 编辑您的设置并将your_project_name.middleware.checkipmiddleware.CheckIPMiddleware添加到中间件中(在您的设置.py中查找MIDDLEWARE_CLASSES = (...

最新更新