API 密钥产品类型
当前状态
自 FOSSBilling 0.5.3 版本以来,已完全实施并作为扩展包含。要使用它,您必须首先从管理员面板中导航到“扩展”选项卡,然后安装 API Key Product
扩展。
注意:与其他一些 FOSSBilling 扩展非常相似,停用/删除它将删除与之关联的数据库表。
基本用法
FOSSBilling 内部的 API 密钥产品类型旨在允许您从 FOSSBilling 中轻松出售 API 密钥,然后可用于访问您创建的自定义应用程序。
创建产品
在 FOSSBilling 中销售任何东西的第一步是创建产品,这个过程对于 API 密钥产品类型是相同的。API 密钥的配置简单而灵活,因此可以轻松应用于自定义应用程序。
Length
: 设置生成的 API 密钥的长度。默认的32个字符通常很适合大多数应用程序。Split
: 默认情况下,FOSSBilling 将使用破折号拆分 API 密钥,使其更易于阅读。可以使用此选项禁用。- 示例:API 密钥
BA90786347C1A4F53CB914D3AC927BDD
将会变成BA907863-47C1A4F5-3CB914D3-AC927BDD
.。 - 破折号不计入 API 密钥的总长度。
- 如果 API 密钥是用破折号生成的,则在联系 FOSSBilling API 以检查其有效性时必须包括它们。
- 示例:API 密钥
Split Interval
: 这允许您配置 API 密钥用破折号拆分的频率。默认情况下,FOSSBilling 每8个字符拆分一次。- FOSSBilling 将自动从生成的 API 密钥中剥离任何尾随破折号。
Capitalization
: 配置 FOSSBilling 应该如何处理生成的 API 密钥中的大写。Uppercase
: API 密钥中的所有字母都将大写。(BA907863-47C1A4F5-3CB914D3-AC927BDD
)Lowercase
: API 密钥中的所有字母都将小写。(ba907863-47c1a4f5-3cb914d3-ac927bdd
)Mixed
: 在 API 密钥中生成大写和小写字母的随机混合。(bBa907863-47c1a4f5-3cb914d3-Ac927bDd
)- 除非您使用非常短的 API 密钥,否则应出于个人偏好原因选择此密钥,而不是试图增加 API 密钥的随机性。
自定义参数
您可以根据需要定义任意数量的自定义参数。这些将绑定到使用该产品类型订购的任何 API 密钥,并可通过 FOSSBilling API 检索。这允许您定义自定义参数,例如 API 密钥的类型或其限制。从那里,您的应用程序可以检索这些自定义参数,然后对 API 密钥执行任何限制。
重要信息:只要他们有 API 密钥并知道 API 端点是什么,任何人都可以检索这些 API 自定义参数。不要使用这些参数来定义需要私有的信息。
使用 API 端点
存在以下 API 端点:
/admin/serviceapikey/update
– 用于允许管理员更新 API 密钥的配置和有效性。/admin/serviceapikey/reset
– 用于允许管理员重置和重新生成 API 密钥。/client/serviceapikey/reset
– 允许客户端重置其 API 密钥。/guest/serviceapikey/check
– 检查 API 密钥是否有效。/guest/serviceapikey/get_info
– 与检查端点类似,只是这还会返回为 API 密钥定义的任何自定义参数。
更新 API 密钥
管理员可以使用 /admin/serviceapikey/update 端点更新 API 密钥,该端点接受以下参数:
- int
order_id
(必填)要更新的 API 密钥的订单ID。 - array
config
(可选)API 密钥的新配置。- 覆盖前一个,因此您必须发送完整的配置,而不仅仅是要更改的参数。
回应:
{ "result":true, "error":null}
请记住,出于安全目的,您无法使用此端点更改 API 密钥。您必须使用 reset 端点来生成一个新的端点。
重置 API 密钥
管理员可以使用 /admin/serviceapikey/reset 端点重置 API 密钥,该端点接受以下参数:
- int
order_id
(可选)要重置的 API 密钥的订单ID。 - string
key
(可选)您需要重置的 API 密钥。
需要发送密钥或 order_id 才能重置 API 密钥,但不需要同时发送两个或另一个。
回应:
{ "result":true, "error":null}
客户端也可以使用 /client/serviceapikey/reset API 端点仅重置其 API 密钥。 它接受相同的参数,并具有相同的返回。
- 如果他们试图重置不在其帐户中的 API 密钥,FOSSBilling 只会出错,说明密钥不存在。
检查 API 密钥的状态
客人(任何人)可以使用 /guest/serviceapikey/check API 端点来检查API密钥的有效性。此端点接受以下参数:
- string
key
要检查的 API 密钥。
回应:
{ "result":true, "error":null}
获取 API 信息
如果您需要访问 API 密钥的有效性以及自定义参数,您可以使用 /guest/serviceapikey/get_info API 端点。这接受与检查端点相同的参数。
回应:
{ "result": { "valid": 1, "config": { "monthlyLimit": 250, "somethingElse": 1150, "astring": "words" } }, "error": null}
备注
- 默认情况下,FOSSBilling 对所有 API 请求都实现了一个基本的速率限制器。
- 这将有助于防止使用 /check 端点对 API 密钥进行暴力猜测,但是您可能需要考虑降低值以使其更具限制性。
- 有一些关于这些配置参数的简要文档。
- 由于这个速率限制器,您应该设计应用程序,在短时间内在本地缓存 API 密钥结果。这将有助于避免任何费率限制,并减少对 FOSSBilling 服务器的不必要的 API 请求。
- 客户端可以随时重置和查看其 API 密钥。如果您希望撤销访问权限,您应该更改其有效性,而不是重置 API 密钥。