python-将Zapier自定义请求Webhook与JSON Web令牌一起使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-将Zapier自定义请求Webhook与JSON Web令牌一起使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2321字,纯文字阅读大概需要4分钟。
内容图文
![python-将Zapier自定义请求Webhook与JSON Web令牌一起使用](/upload/InfoBanner/zyjiaocheng/687/db96777671e34149918a6b1bff42a7c4.jpg)
我需要访问一个使用JSON Web令牌作为其身份验证方法的API.有没有一种好的方法来使用python代码步骤来创建此令牌,然后将该令牌作为标头添加到自定义请求Webhook步骤中?
解决方法:
我使用API??进行身份验证的经验一直是使用简单的API key方法.因此,我首先阅读了您的问题,但并没有完全理解.我决定做一些研究,并希望在此过程中学到一些东西,我当然做到了.我分享我的发现并在下面回答:
首先,我开始阅读JSON Web令牌(JWT),这使我进入了JWT网站,这是一个很好的资源.它非常清楚地阐明了构成JWT的组件以及如何格式化它们,我强烈建议您看看.
在JWT网站上,我发现JWT由三个部分组成:
>一个base64 URL安全编码的标头.
> base64 URL安全编码的有效负载.
> base64 URL安全编码的签名.
以上所有三个组合构成了正确格式化的JWT.幸运的是,JWT网站上有一个针对Python的库列表.不幸的是,Zapier代码模块提供的香草Python中没有这些第三方库.要做到这一点,需要阅读一些source code并利用我们现有的库.因此,经过几个小时的反复试验,我能够提出以下解决方案来生成格式正确的JWT:
import hashlib
import hmac
import requests
from base64 import urlsafe_b64encode
def base64url_encode(payload):
if not isinstance(payload, bytes):
payload = payload.encode('utf-8')
encode = urlsafe_b64encode(payload)
return encode.decode('utf-8').rstrip('=')
def generate_JWT(header, payload, secret):
encoded_header = base64url_encode(header)
encoded_payload = base64url_encode(payload)
signature = hmac.new(secret,
encoded_header + "." + encoded_payload,
hashlib.sha256)
encoded_signature = base64url_encode(signature.digest())
return encoded_header + "." + encoded_payload + "." + encoded_signature
def get_request(url, jwt):
headers = {
"Authorization" : "Bearer " + jwt
}
result = requests.get(url, headers=headers)
return result
secret = "yoursecrettoken"
header = '{"alg":"HS256","typ":"JWT"}'
payload = '{"sub":"1234567890","name":"John Doe","iat":1516239022}'
jwt = generate_JWT(header, payload, secret)
response = get_request("https://SomeApiEndpoint.com/api/", jwt)
您可以针对JWT的调试器here测试其输出.
注意:为了使编码对于标头和有效负载对象正常工作,必须将它们转换为字符串对象.我尝试通过调用JSON.dumps()函数并传递字典对象来做到这一点,但是当我对返回值进行编码时,它们与JWT调试器上显示的不匹配.我能找到的唯一解决方案是将字典对象括在引号中,并确保其中没有空格.
因此,有了JWT,您就可以在Zapier Webhooks定制获取请求步骤中使用它,或者可以保存zap并使用Python request library在相同的代码模块中发送请求,就像我在代码示例中一样.
感谢您的学习机会,希望对您有所帮助.
内容总结
以上是互联网集市为您收集整理的python-将Zapier自定义请求Webhook与JSON Web令牌一起使用全部内容,希望文章能够帮你解决python-将Zapier自定义请求Webhook与JSON Web令牌一起使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。