Emssauth plugin for httpie.

httpie-ems-auth-p3的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第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本