![](/img/trans.png)
[英]how can i render a component with an API call with props react js
[英]How can I identify users of my API when they call it in JS?
我建立了一个人们可以在javascript中使用的API(客户端,而不是Node.js)。 问题是我需要知道谁在使用我的API。 如果有人在我的API的ajax调用中包含API密钥,那么任何人都可以看到他们的API密钥并使用它。
如果我的API用户是从JS调用的,该如何识别?
$.ajax(function(){
url: "http://usefulapi.com/get-things?api_key=123412341234134", // Anybody can see my API key.
data: { some_data }
});
通常,我们使用公钥和私钥加密的组合来访问API。 专用密钥仅API才知道,并且您可以基于公用和专用密钥创建哈希,并在服务器端检查它们是否匹配。
接下来,将密钥限制为特定域是一个好主意。 在PHP中,您可以轻松地使用$_SERVER['HTTP_ORIGIN']
超全局$_SERVER['HTTP_ORIGIN']
来检查请求的来源。 以下伪代码应为您提供一些指针:
$domain = basename($_SERVER['HTTP_ORIGIN']);
$apiKey = $_REQUEST['api_key'];
// Now, get the private key for this domain
// Check the private and public keys match
// The request is either allowed or denied.
如您所见,值得在数据库中添加一个身份验证表,并在其中存储域,公钥和私钥,以便对请求进行身份验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.