烧瓶HMAC发电机、检查器和线路装饰器
Flask-HMAC的Python项目详细描述
此模块提供三个功能来验证对烧瓶路由的调用。这个 预期的用例用于restapi。本模块不打算执行 任何类型的登录或会话管理,它只是设计来检查 客户有权访问烧瓶应用程序中的特定路径,基于 它必须拥有共享/密钥的副本。
用法
用法包括一个服务器装饰器调用render_hmac函数,以及 客户端(或服务器应用程序中的函数)传递base64编码的hmac。
服务器/应用程序使用
要在应用程序中使用此模块,请在应用程序的 配置对象。例如:
HMAC_KEY = 2a21c5b3bff0299c0161470468f355e5b4afcf17a5f593ab68394e
提供的三种方法是:
- check_wrapper()decorator函数,它用对以下对象的调用包装路由:
2.compare_hmacs()函数,它将客户端提供的令牌与 服务器生成的令牌。如果两者匹配,则返回修饰函数。如果不是, 返回403响应。
- 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比较失败时允许自定义响应。