限制我的api不被未经授权的网站使用

时间:2017-11-10 10:11:21

标签: php rest api curl codeigniter-3

我是REST API创作的初学者。 我创建了一个REST AP I(提供JSON输出),我可以访问多个用户(每个用户都有API key)

我希望每个用户只能在特定网站上使用API​​,而不能用于其他网站。

示例:

  

User-A(使用唯一的API密钥)将我的API用于“example1.com”。

     

User-B(使用唯一的API密钥)将我的API用于“example2.com”。

所以我的API应该在这两个网站上运行,他们无法在“example3.com”中运行它。

我如何限制它们?

1 个答案:

答案 0 :(得分:0)

对于你想要完成的事情,请看CORS(跨源资源共享)这里另一个post

基本上在服务器端(PHP)

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: X-Requested-With, content-type, access-control-allow-origin, access-control-allow-methods, access-control-allow-headers');

在你的情况下,你可以做类似的事情:

$http_origin = $_SERVER['HTTP_ORIGIN'];
if ($http_origin == "http://www.domain1.com" || $http_origin == "http://www.domain2.com" || $http_origin == "http://www.domain3.info")
{  
   header("Access-Control-Allow-Origin: $http_origin");
}

有关更多资源,请查看此post

免责声明代码:https://stackoverflow.com/a/7454204/1027877