简单的vapid头生成库
py-vapid的Python项目详细描述
轻松乏味的生成
这个最小库包含您需要的最小函数集 生成一个乏味的密钥集并获取需要在 webpush订阅更新。
vapid是webpush订阅提供商(站点)的自愿标准 向远程客户发送webpush更新)以进行自我识别 服务器(传递推送通知的服务器)。
乏味的“声明”是一组json键和值。有两个 必选字段,一个半可选字段和多个可选附加字段 领域。
至少一个乏味的索赔集应该是这样的:
{"sub":"mailto:YourEmail@YourSite.com","aud":"https://PushServer","exp":"ExpirationTimestamp"}
一些注释:
sub是您希望记录的电子邮件地址 请求,前缀为“mailto:”。如果出了问题,这是 将用于联系您(例如)的电子邮件。这可能是 一般传送地址,如“mailto:push_operations@example.com” 或者像“mailto:bob@example.com”这样的特定地址。
aud是乏味的听众。这就是你的计划 用于发送订阅终结点,通常与 endpoint在订阅信息块中指定。
例如,如果webpush订阅信息包含: {"endpoint": "https://push.example.com:8012/v1/push/...",...}
那么aud就是“https://push.example.com:8012”
虽然有些推送服务认为这是一个可选字段,但其他可能是 更严格。
exp这是此vapid请求将 到期。最长周期为24小时。设置较短的周期可以 防止“重播”攻击。设置一个较长的周期允许您重复使用 多次发送的标题(例如,如果您发送了数百个更新 一个小时左右)如果不包括exp,则会过期 24小时后将为您自动生成。
声明应该存储在json兼容的文件中。在例子中 下面,我们将声明存储到名为claims.json的文件中。
py_vapid既可以作为库安装,也可以作为备用 应用程序,bin/vapid。
应用程序安装
您需要python virtualenv在当前目录中运行它。
然后运行
bin/pip install -r requirements.txt bin/python setup.py install
应用程序使用
自行运行,bin/vapid将检查并可选地创建 public_key.pem和private_key.pem文件。
bin/vapid --gen可用于生成一组新的public和 私钥PEM文件。这些将覆盖 private_key.pem和public_key.pem。
bin/vapid --sign claims.json将生成一组http头 来自json格式的声明文件。包含样本claims.json。 有了这个分布。
bin/vapid --sign claims.json --json将以json格式输出头 格式,可能对其他程序有用。
bin/vapid --applicationServerKey将返回 applicationServerKey可以用来限制 端点。见 https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe 更多细节。请注意,此值与生成的 公钥/私钥。如果删除或生成新密钥,则 您以前生成的url需要重新分配。请注意 一些用户代理可能需要您to decode this string into a Uint8Array。
有关所有选项和命令,请参见bin/vapid -h。