如何在Javascript和PHP中设置带有URL身份验证的API web密钥

How do I set up an API web key with URL authentication in Javascript and PHP?

本文关键字:身份验证 URL API 密钥 web 设置 Javascript PHP      更新时间:2023-09-26

所以我一直读到眼睛流血,所以这是我的问题。。。

我的后端是PHP

我有一个服务,我想在网上发布,让它叫GREATSERVICE.com。我想让人们注册API密钥,并按域限制它,这样http://www.????.com可以使用它。我知道我可以直接将API和域存储到数据库中。

我不知道如何验证该服务是否被正确的网站访问。

我的意思是说,我正在使用域名temp-13-43.xfinity.com浏览网络,然后我转到网站servicehost.com。servicehost.com有一个API密钥。。。。至于我如何识别服务是从servicehost.com而不是客户端temp-13-43.xfinity.com地址访问的。。。

所以我想弄清楚的是在客户端的javascript中实现这一点。有点像谷歌地图。地图只是用API密钥将一些javascript加载到页面上,但API密钥检查网站的URL,而不是访问网站的客户端。

那就是我迷失的地方。我如何检查用户访问的网站的DOMAIN,只有当它使用正确的API正确时,才能提供服务。

所以在标题部分我有javascript

So on the SERVICEHOST site I give them the code so that they can use the mygreatservice widget. Think along the lines of the twitter embeded viewer
<SCRIPT type="text/javascript" src="http://mygreatservice.com/service.php?api=asdfasdfasdfa></SCRIPT

标记,这些标记指向一个PHP页面以返回所需的javascript。同样,我只想确保我返回的小部件在适当的网站上用于轻度安全/跟踪目的。

感谢

编辑:

请您的成员在他们的网站上写下这一行:(例如,我把这段代码放在我的服务器上http://www.otherserver.com)

<script language="javascript" src="http://yourserver.com/service.php?token=342424adsasjdl34"></script>

在您的service.php文件(托管在您的服务器上)中:

$server = $_SERVER['SERVER_NAME']; // =www.otherserver.com
$apitoken = $_GET['token']; // the token 342424adsasjdl34 (don't forget to make it safe!)

那就是我迷失的地方。我如何检查网站的域用户转到,并且只有当它使用正确的API正确时提供服务。

这将为您提供许多关于发起请求的主机的信息:

echo $_SERVER

特别是echo $_SERVER['HTTP_HOST']

现在,您需要检查此HTTP_HOST是否具有Web服务可以验证的合法API密钥。