我很确定我要问的答案是否定的,但也许有人可以给我一个不同的想法,所以我还是要问。
我正在开发一个控制面板,它通过 API 调用从第 3 方网络服务中获取信息。我可以使用 AJAX 进行调用,它会在浏览器上以毫秒为单位返回结果,但我会公开此服务的 API 密钥。即使这是一个访问受限的 Intranet,员工也可以通过仅查看 Safari 的活动窗口来四处嗅探并获取私有 API 密钥。员工是值得信赖的,但我不想仅仅因为信任而冒着我的发展安全风险。
我现在正在做的是 AJAXing 一个 php,它使用 CURL 调用进行调用,但这样做大约需要 2 或 3 秒:不是 php 本身,共享主机到第 3 方服务器并返回。
有没有办法让浏览器直接向 API 发出请求而不暴露私钥?我认为根据定义这是不可能的,但我正在分享这个场景,所以也许有人有更好的主意(我试图避免缓存,因为获取的信息会在第二秒发生变化)
不是问题,我对此有疑问:如果我通过 Mac OS 终端或本地 Apache 上的 CURL 进行 API 调用,每次需要大约 12 秒才能获得结果,但浏览器在完全相同的计算机和连接中以毫秒为单位。我对 CURL 内部的工作方式不是很熟悉,但 CURL 是一种缓慢的机制,或者在我的 Mac 中无法正常工作。
谢谢