【发布时间】:2021-04-22 01:58:58
【问题描述】:
这里是初学者。我有一个通过 node.js (w/ express) 消耗Here's Geocoding REST API 的应用程序。 (我的 api 密钥在服务器端,所以对客户端隐藏。)
但我意识到要添加自定义标记和其他 UI 来映射数据,我还需要使用 Here's Javascript API。根据我在文档中看到的内容,我加载了 API 并在客户端实现了功能;但这意味着我的 api 密钥将被暴露。因此,我从根本上对如何在服务器端实现这个 javascript API 感到困惑(以便对客户端隐藏 api 密钥和代码)。
bundling 或带有 Next.js 的 SSR 会是答案吗?
这可能有一个明显的答案,但我找不到。任何见解将不胜感激。谢谢
【问题讨论】:
-
它是否使用与 REST API 相同的 API 密钥?我不熟悉 Here API,但 Stripe 为客户端使用的 API 提供了一个单独的“公共”密钥,并为服务器 API 提供了一个“私有”密钥。客户端 API 非常有限,无法自行转移资金。
-
REST API 密钥与 javascript API 密钥是分开的(尽管他们说后者也可用于调用 REST API)。此外,没有公钥——只有一个私钥。
-
在客户端公开的任何密钥实际上都是公开的。
-
明白。它们提供了将受信任域列入白名单以发起请求的能力,因此我认为尽管 api 密钥是公开的,但这会提供一些保护。
-
我很想问 HERE 开发人员您应该如何实现这一点。鼓励他们提供解决方案,如果他们还没有(而且他们似乎没有这样做)。理想情况下,他们会提供一个 API,您可以使用它来为 Web 客户端出售限时 API 密钥。您可以通过您的 webapp 代理所有 HERE 请求,您的 webapp 只需在调用 HERE 之前附加相关的 API 密钥(远非理想)。
标签: javascript node.js next.js here-api api-key