FOSSBilling API 密钥

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 以检查其有效性时必须包括它们。
  • 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 端点:

  1. /admin/serviceapikey/update – 用于允许管理员更新 API 密钥的配置和有效性。
  2. /admin/serviceapikey/reset – 用于允许管理员重置和重新生成 API 密钥。
  3. /client/serviceapikey/reset – 允许客户端重置其 API 密钥。
  4. /guest/serviceapikey/check – 检查 API 密钥是否有效。
  5. /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 密钥。