在保持密钥机密的同时,使用户能够访问第三方API

问题描述

我正在使用Node.JS和单页Web应用程序。

该应用程序是首页,看起来像是标准搜索引擎。 它正在使用Microsoft Bing Web搜索API。 Microsoft建议设置Azure帐户和认知服务,然后再向它们提供API订阅密钥,我可以使用该订阅密钥向API发出请求。

我想将此API公开给具有我的自定义域地址的任何用户。 问题在于,每个请求都必须提供API密钥:来自以下MS的代码

<form name="bing" onsubmit="this.offset.value = 0; return bingWebSearch(this.query.value,bingSearchOptions(this),getSubscriptionKey())">

请求带有搜索参数和订阅密钥。

script.js

    function getSubscriptionKey() {
    var key = MY_KEY;
    return key;
    }

是否存在从.env之类的文件获取订阅密钥的安全方法,以便每次向API发出请求时,用户都看不到该密钥?

我开始认为,可能需要先将搜索请求发送到Node.js服务器,该服务器将请求解析到API上并安全地提供密钥,然后将响应从API发送回服务器服务器会将该响应解析回用户正在查看的页面。 这可能吗?如果可以,怎么办?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...