我正在使用Flask构建API,我想使用HMAC签名的URL。但是,我找不到能与Flask的url_for
机制配合使用的任何标准实现。
理想情况下,我希望能够支持通过请求路由功能和GET查询字符串发送的参数,而不必事先知道哪个。
我设法找到的唯一用于在Python中处理URL签名的库是Ska,它不适合我的需要,因为它想处理其自己的所有查询字符串构建。特别是,如果传递一个flask.url_for
URL,则该URL已经包含查询字符串将导致无效URL:
>>> ska.sign_url(url='http://example.com/foo?bar=baz',secret_key='qwerpoiu',auth_user='')
'http://example.com/foo?bar=baz?signature=Fz3fKO3BqD6o4mmMn4EAg9f6pts%3D&auth_user=&valid_until=1561903773.0&extra='
(请注意,结果URL中的辅助?
应该是&
。)
由于Flask在解析和构建URL方面已经做得非常出色,因此是否存在用于签名和验证Flask生成的URL的标准模式?
答案 0 :(得分:0)
我最终要做的是在对URL进行签名之前对其进行解析,然后如果存在现有查询字符串,则将for lower in range(lower, upper + 1):
for x in range(2, lower):
if lower % x == 0:
break
else:
print(f'{lower} is prime')
的{{1}}传递给suffix
;例如:
'&'