我使用 GitHub 作为我的代码存储库。我为一个存储库创建了一个 webhook,所以当任何代码更改被推送到这个存储库时,GitHub 会通知我的应用程序编译代码。在我的应用程序中编译代码之前,我需要验证 GitHub 请求中的 X-Hub-Signature,这是我在 python 中所做的。我发现我用 key 和有效载荷计算的签名总是与 GitHub 提供的签名不匹配。对此有什么想法吗?谢谢!
import hmac
import hashlib
import pickle
def compile_code(request):
payload = pickle.dumps(request.DATA)
signature = hmac.new(APP_KEY, payload, hashlib.sha1).hexdigest()
if signature == request.META.get('X-Hub-Signature'):
do_compile_code()
else:
...
最佳答案
最后正确的方法是
signature = 'sha1=' + hmac.new(APP_KEY, request.body, hashlib.sha1).hexdigest()
if signature == request.META.get('HTTP_X_HUB_SIGNATURE'):
do_something()
关于python - 无法在我的应用程序中验证 GitHub X-Hub-Signature,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28228392/