【发布时间】:2020-11-04 07:45:09
【问题描述】:
我需要使用 HMAC-SHA1 验证传入请求。对我来说主要问题是为它创建基本字符串。是否有任何 python 库可以从请求中生成 base string 并在可能的情况下进行验证?
【问题讨论】:
标签: python python-3.x oauth hmac
我需要使用 HMAC-SHA1 验证传入请求。对我来说主要问题是为它创建基本字符串。是否有任何 python 库可以从请求中生成 base string 并在可能的情况下进行验证?
【问题讨论】:
标签: python python-3.x oauth hmac
据我了解,您不是在询问 OAuth 1.0 请求,而是在询问签名和验证功能,对吧?
如果这是你要问的,我不确定是否有任何库,但在Authlib 的代码中,有一个模块可以进行签名和验证签名:https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py
结帐:
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)
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
【讨论】:
'Request' object has no attribute 'uri,再次感谢您!