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

时间:2014-10-27 15:54:55

标签: django django-1.7

所以我有一个Django应用程序,作为我写的另一个应用程序的后端。我只想从我的其他应用程序访问我的Django应用程序,它可能有一些版本(生产,登台,dev1,dev2)。如何配置我的Django应用程序只接受来自这些少数客户端的连接?

1 个答案:

答案 0 :(得分:2)

如果我理解你想要控制对Django App的访问权限,可以选择添加自定义中间件以检查用户的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添加到您的中间件中(在settings.py中查找MIDDLEWARE_CLASSES = (...