我目前正在设计要使用的 API 模型。用户将拥有一个“secret_api_key”和一个“public_api_key”。他们将使用公钥、表单数据和哈希向我的服务器发送请求。哈希是使用“secret_api_key”加密的表单数据。
这样服务器将重新创建此哈希,因为它知道“secret_api_key”,如果哈希相同,则接受请求,否则拒绝它。
我的问题是,如果有人要使用 JavaScript 执行此操作,那么他们将不得不在浏览器中“随时随地”加密这个,这意味着他们将需要“secret_api_key”来对它进行哈希处理。但是“secret_api_key”是为了远离公众视线,所以任何人都可以查看脚本并看到密钥。
这是一种错误的做法吗?老实说,我想不出一种方法可以让您使用 JavaScript 在浏览器中使用我的 API(这将是人们使用我的 API 的主要方法)
我知道使用 OAuth 您会得到一个“access_token”,您只需将其与请求一起发送,肯定有人可以使用流量嗅探器并使用相同的访问令牌重新发送请求吗?还是 OAuth 的工作方式不同?
任何帮助或建议将不胜感激。
谢谢你。