通过 HMAC-SHA1 验证 Python3 上的传入请求

Verifying incoming requests on Python3 by HMAC-SHA1

我需要使用 HMAC-SHA1 验证传入请求。我的主要问题是为它创建基本字符串。 python 是否有任何库可以从请求中生成 base string 并在可能的情况下进行验证?

据我了解,您不是在询问 OAuth 1.0 请求,而是在询问签名和验证功能,对吗?

如果这就是你要问的,我不确定是否有图书馆,但在 Authlib's code, there is a module to do sign and verify signatures: https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py

结帐:

  1. sign_hmac_sha1 https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py#L350
def sign_hmac_sha1(client, request):
    """Sign a HMAC-SHA1 signature."""
    base_string = generate_signature_base_string(request)
    return hmac_sha1_signature(
        base_string, client.client_secret, client.token_secret)
  1. verify_hmac_sha1 https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py#L368
def verify_hmac_sha1(request):
    """Verify a HMAC-SHA1 signature."""
    base_string = generate_signature_base_string(request)
    sig = hmac_sha1_signature(
        base_string, request.client_secret, request.token_secret)
    return hmac.compare_digest(sig, request.signature)

可以借鉴Authlib代码。但如果你只是想发送 OAuth 1.0 请求,你可以直接使用 Authlib。文档在这里:https://docs.authlib.org/en/latest/client/oauth1.html