霍克要求

requests-hawk的Python项目详细描述


https://travis-ci.org/mozilla-services/requests-hawk.png

此项目允许您将the python requests librarythe hawk authentication机制一起使用。

Hawk本身不提供任何机制来获取或传输 需要一组共享凭据,但此项目提出了我们使用的方案 跨Mozilla服务项目。

太好了,我怎么用呢?

首先,您需要安装它:

.. code-block:: bash

  pip install requests-hawk

然后,在您的项目中,如果您知道id键,则可以使用:

.. code-block:: python

  import requests
  from requests_hawk import HawkAuth

  hawk_auth = HawkAuth(id='my-hawk-id', key='my-hawk-secret-key')
  requests.post("https://example.com/url", auth=hawk_auth)

或者,如果需要从hawk会话令牌派生它们,请使用:

.. code-block:: python

  import requests
  from requests_hawk import HawkAuth

  hawk_auth = HawkAuth(
      hawk_session=resp.headers['hawk-session-token'],
      server_url=self.server_url
  )
  requests.post("/url", auth=hawk_auth)

在第二个示例中,HawkAuthserver_url参数用于 提供一个默认主机名,以避免对每个请求重复该名称。

如果要重写sha256的默认算法,请传递所需的 使用可选的algorithm参数的算法名称。

注意:已删除credentials参数。而是传递id和 {TT7} $单独(如上),或将现有的DICT作为^ {TT8}$。

与httpie集成

Httpie是一个让您 以一种友好而简单的方式请求远程服务器。在引擎盖下,httpie 使用请求库。我们已经让你很容易用它来插上Hawk。

如果您知道ID和钥匙,请按如下方式使用:

.. code-block:: bash

 http POST localhost:5000/registration\
 --auth-type=hawk --auth='id:key'

或者,如果要使用Hawk会话令牌,可以执行以下操作:

.. code-block:: bash

 http POST localhost:5000/registration\
 --auth-type=hawk --auth='c0d8cd2ec579a3599bef60f060412f01f5dc46f90465f42b5c47467481315f51:'

注意,不要忘记在hawk会话结束时添加额外的:。 它被认为是这样的象征。

如何共享共享凭据?

好的,具体细节。

服务器为您提供一个会话令牌,您需要派生该令牌才能获取 霍克证件。

对给定会话令牌执行hkdf派生。你需要使用 以下参数:

.. code-block:: python

  key_material = HKDF(hawk_session, '', 'identity.mozilla.com/picl/v1/sessionToken', 32*2)

你将从香港国防军得到的关键材料需要分为两部分 部分中,前32个十六进制字符是hawk id,后32个是 hawk key

.. code-block:: python

  credentials = {
      'id': keyMaterial[0:32]
      'key': keyMaterial[32:64]
      'algorithm': 'sha256'
  }

运行测试

要运行测试,可以使用tox:

.. code-block:: bash

  tox

更改日志

1.0.0(2015-12-15)

  • 当id和密钥已知时使用hawkauth的简化api。(8)
  • 增加了在派生时重写默认算法(SHA256)的支持 来自hawk会话令牌的凭据,通过新的algorithm参数。

如果使用credentials参数,请参阅迁移建议的自述文件。

0.2.1(2015-10-14)

  • 确保正确处理了requests json参数。(7)

0.2.0(2015-05-19)

  • 用python 3.4修复setup.py中的编码错误
  • 添加配置参数以便能够设置 要使用的时间戳。

0.1.2(2014-08-13)

  • 添加python3支持

0.1.1(2014-07-21)

  • 第一个版本

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

推荐PyPI第三方库


热门话题
java为什么我的代码永远运行?它只是一堆带int的for循环,应该是递减的?   java如何更改IntelliJ IDEA中的XML缩进?   java如何使未填充的int数组不打印0?   eclipse My Weka Java代码结果*Weka*虚拟*STRING*用于*STRING*属性*   java泄漏了Windows com。安卓内部的政策恳求   java这个无限循环的原因是什么?   swing My标签在Java中很模糊   java如何在组件表示存储扩展中获取组件对象   java如何避免selenium网格中的会话超时   Java乘法测验,如果答案错误,如何循环   在Java HttpServlet Google app engine中保存对象   java ArrayList过滤器   java跳跃减慢了xvelocity:使用Libgdx/Box2D进行跳跃和跑步   java删除、复制和修改pom。xml文件   当提供的时区与服务器的时区相同时,RestCall中的java@DateTimeFormat(iso=iso.DATE_TIME)不工作   java Spring批处理多线程默认限制为10隐式?   安卓错误java。lang.UnsupportedOperationException:无法转换为维度:type=0x1