烧瓶HMAC发电机、检查器和线路装饰器

Flask-HMAC的Python项目详细描述


此模块提供三个功能来验证对烧瓶路由的调用。这个 预期的用例用于restapi。本模块不打算执行 任何类型的登录或会话管理,它只是设计来检查 客户有权访问烧瓶应用程序中的特定路径,基于 它必须拥有共享/密钥的副本。

用法

用法包括一个服务器装饰器调用render_hmac函数,以及 客户端(或服务器应用程序中的函数)传递base64编码的hmac。

服务器/应用程序使用

要在应用程序中使用此模块,请在应用程序的 配置对象。例如:

HMAC_KEY = 2a21c5b3bff0299c0161470468f355e5b4afcf17a5f593ab68394e

提供的三种方法是:

  1. check_wrapper()decorator函数,它用对以下对象的调用包装路由:

2.compare_hmacs()函数,它将客户端提供的令牌与 服务器生成的令牌。如果两者匹配,则返回修饰函数。如果不是, 返回403响应。

  1. render_hmac()函数,您猜它会生成一个hmac。

要使用此模块,请按如下方式实例化:

fromflask_hmacimportHmacapp=Flask(__name__)hm=Hmac(app)

现在您可以用@hm.check_hmac decorator来装饰一条路线,如下所示:

@app.route('/path/to/api/endpoint',METHODS=['PUT','POST'])@hm.check_hmac

最后,您可以使用配置临时禁用check-hmac验证 价值。在app.config对象中生成变量HMAC_DISARM = True。这个 设置对于测试很有用,因为它允许您保留所有decorator调用 路线/蓝图的位置。

客户使用

要从客户端传递hmac,请发送 像这样的hmac:

"HMAC: UKW-EaC9diBPuRTgwaUprw4pf4h1nTJyClCT48dbhQo"

确保删除了任何trailing=字符,并且应全部设置。

待办事项

一。允许使用任何类型的呈现HMAC,如hexDigest,而不是仅使用base64 URL安全。

2.创建self.status\u代码和self.message变量,用于 在HMAC比较失败时允许自定义响应。

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

推荐PyPI第三方库


热门话题
java子组件宽度超过父组件宽度   java JCheckBox始终返回True/False,但不更改   java start simple 1生产者2通过executor服务消费   java如何在没有数组的情况下找到50个随机数中的最大值和最小值?   java如何处理HttpAsyncClient异常   基于java文本的jar文件在windows cmd中运行时出错。这个问题怎么解决?   java无法在Jboss EAP 7.0服务器中创建oracle数据源   java尝试使用数学旋转多边形   契约式设计如何在Java中实现自定义类实例不变量   爪哇修改怪物在锻造雷霆模型中的繁殖率(1.16)   http如何在java中构造curl XHEAD请求   java文件md5哈希在分块时发生变化(用于netty传输)   java有一个简单、异步、HTTP集成I/O的框架吗?   java commercetools:在JVM SDK中,是否可以从JSON创建产品?   Java在加载改装的minecraft时发生致命错误   java hibernate不创建sessionFactory bean   java改型以使用参数获取请求   java将github库添加为gradle中的依赖项