我正在为我的计算机服务器创建webhook。根据官方文件。它说以下命令将为我提供views.py
个。
CIDR
但是当我实施时。我总是得到另一个不在列表中的Facebook IP地址。
请参阅this我知道它经常更改。但它不应该在10秒内排除在列表之外。
答案 0 :(得分:0)
我今天获得了新知识!
Nginx
,Docker
,Django
一直到达我的代码变量
REMOTE_ATTR
被队中的某个人变异了。然后我使用相同的变量添加新的引用X-Real-IP
,然后再次观察我的代码。
location / {
proxy_pass_request_headers on;
proxy_set_header Host $host;
proxy_pass http://app;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header REMOTE_ADDR $remote_addr;
}
有人再次将变量名称从X-Real-IP
变为HTTP_X_REAL_IP
。最后我的WebhookPermission
必须是这个
import logging
from rest_framework import permissions
from poinkbackend.apps.socials.utils import check_whitelist
logger = logging.getLogger('django')
class WebhookPermission(permissions.BasePermission):
def has_permission(self, request, view):
ip_addr = request.META['HTTP_X_REAL_IP']
logger.info(f'{ip_addr} inbound a webhook')
logger.info(f'{request.META}')
return check_whitelist(ip_addr)