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