霍克要求

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第三方库


热门话题
JavaFX进度条从单独的函数更改而来   jvm使用java服务器选项   java在<li>元素中查找同名的最后一个链接   java问题将参数传递给不同公共类中的构造函数   如何在php中从java函数中获取字符串   java如何在Android中动态显示多个tile   java仅使用Ribbon而不使用任何服务注册表是否可以实现负载平衡?   Jersey 1.19版本的java Swagger JAXRS出现“冲突URI模板”错误   带H2数据库的java Spring boot jpa   从12:00:00到00:00:00的日期转换   Android中的java如何设置文本?   java密钥库“不支持的保护参数”   http使用Java在Java中发送httprequest。净包   SpringJava刷新数据库   java在Spring Boot应用程序中使用嵌入式MongoDb和MongoTemplate失败   java需要什么MatOfMatch对象?   xml使用Java中的合并算法将两个值合并为单个值   java SQLite数据库不保存数据为什么不工作