gpt4 book ai didi

python-3.x - 如何在 Python 3 中验证来自 GitHub webhooks 的有效负载?

转载 作者:行者123 更新时间:2023-12-04 15:36:29 26 4
gpt4 key购买 nike

我已经通过 Github webhooks 实现了在服务器上自动部署我的 Flask 应用程序,但我无法适应 manual 中指定的 Ruby 脚本到 Python 3 以验证 POST 请求。我试过这个:

from flask import Flask, request
from hmac import HMAC, compare_digest
from hashlib import sha1

app = Flask(__name__)

def verify_signature(req):
received_sign = req.headers.get('X-Hub-Signature').split('sha1=')[-1].strip()
secret = 'my_secret_string'.encode()
expected_sign = HMAC(key=secret, msg=req.data, digestmod=sha1).hexdigest()
return compare_digest(received_sign, expected_sign)

@app.route('/webhook', methods=['POST', 'GET'])
def webhook():
if request.method == 'POST':
if verify_signature(request):
do_smth()
return 'Successfully', 200
return 'Forbidden', 403
return 'Not allowed', 405
此外,我尝试了来自 secrets 包的 sha1(...).hexdigest() 和 compare_digest() 的其他变体,但收到的签名总是不同。
我做错了什么?

最佳答案

我已经更新了代码。现在它运作良好。

关于python-3.x - 如何在 Python 3 中验证来自 GitHub webhooks 的有效负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59580376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com