Emssauth plugin for httpie.

httpie-ems-auth的Python项目详细描述


这个HTTPie身份验证插件实现escher身份验证 对于emarsys api请求。

安装

确保HTTPie已安装,并安装此插件:

$ pip install httpie-ems-auth

安装后,如果运行 $ http --help

示例

如果调用套件的API,则适用

$ http --auth-type=ems-auth --auth=escher_key:escher_secret https://api.emarsys.net/api/v2/internal/12345678/settings

默认的escher凭证作用域是“eu/suite/ems_request”,用于标识套件。 如果要调用其他服务,则必须更改凭据范围,如下所示:

$ http --auth-type=ems-auth --auth=eu/suite/ems_request/escher_key:escher_secret https://api.emarsys.net/api/v2/internal/12345678/settings

如果您愿意,请查看HTTPie sessions 在请求之间保存身份验证信息。

如果您想在python代码中使用此示例,可以帮助:
importescherauthimportdatetimefromurlparseimporturlparseimportrequestsescher_key='test'escher_secret='test'options={'algo_prefix':'EMS','vendor_key':'EMS','hash_algo':'SHA256','auth_header_name':'X-Ems-Auth','date_header_name':'X-Ems-Date'}credential_scope="test"if"/"inescher_key:scope=escher_key.split("/")escher_key=scope.pop()credential_scope="/".join(scope)client={'api_key':escher_key,'api_secret':escher_secret}escher=escherauth.Escher(credential_scope,options)url='http://test-escher-url.com/api/call/smth'r=requests.PreparedRequest()r.prepare('GET',url)now=datetime.datetime.utcnow()r.headers['X-Ems-Date']=now.strftime('%Y%m%dT%H%M%SZ')parsed_uri=urlparse(r.url)r.headers['Host']=parsed_uri.netlocf=escher.sign(r,client)s=requests.Session()s.send(f)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
swing Java按钮/网格布局   java列出Google日历中的所有事件   java无效:单击API publisher test按钮后连接到后端时出错   带有内部赋值的java While循环导致checkstyle错误   java为什么trimToSize/ensureCapacity方法提供“公共”级访问?   文件输出流的java问题   ListIterator和并发修改异常的java问题   java如何使用两个URL映射   无法识别使用“./../”构造的字符串java相对路径,为什么?   首次写入remotelyclosedsocket不会触发异常,对吗?JAVA   java OneDrive REST API为文件上载提供了400个无效谓词   Java泛型、集合接口和对象类的问题   OpenSSL Java安全提供程序   jmeter java运行jmx禁用操作