0

我们目前正在开发基于 Google Cloud Functions 的 API 以及 Google 的 API Gateway。

由于每个购买我们 API 访问权限的客户都应该获得自己的 API 密钥,我想知道是否有一种方法可以使用 API 创建这些 API 密钥。我想要实现的是客户能够在自己的设置中请求 API 密钥,所以单击一个按钮,这会触发一个功能,生成一个密钥并将其显示给前端的客户。

在搜索了相当长的一段时间后,我没有找到任何关于如何构建它的信息。也可能是我的处理方法完全错误 - 如果是这种情况,请烤我并给我一些建议!

提前感谢您的回答!

4

2 回答 2

1

无法通过程序创建 Google 凭据,它们必须手动创建。

于 2021-04-14T14:41:02.787 回答
1

事实上,有一些东西。有一段时间处于测试阶段(超过 1 年前),很快又回到了 alpha 阶段,并且没有记录(或非常糟糕)

正如您在 gcloud alpha 命令中看到的,您可以将 API 密钥与 CLI 和 API 一起使用。使用此命令来测试和发现更多如何使用 API 密钥。

gcloud alpha services api-keys create --display-name="created by API" --log-http

谨慎使用

首先,我没有关于这个 API 的更新,它会继续存在吗?Google 的生命周期和“没有消息”很奇怪,请记住,API 可以随时删除。

其次,API 密钥是一种长期存在的令牌,出于安全原因不推荐使用。但有时,有总比没有好,所以在没有其他解决方案的情况下使用它是可以接受的。否则,更喜欢 OAuth 。

最终,API 密钥对项目进行身份验证,而不是对客户/用户进行身份验证。在 API Gateway 请求转发后,您不会在标头数据中包含它。只有项目 ID(或编号,我不记得了)。因此,如果您想区分每个客户/用户,您需要创建不同的项目,并在每个项目中生成一个密钥。如果您在 API Gateway 上实施速率限制,同样的事情:配额是每个项目而不是每个 API 密钥。

于 2021-04-14T20:52:01.360 回答