如何使用php隐藏api密钥?

时间:2015-05-26 17:12:53

标签: javascript php jquery ajax

大家。我试图创建传奇api联盟,但我需要隐藏api密钥。我知道没有办法从前端隐藏密钥,所以这就是我做的方式,我不确定这是最好的方法。请帮我!!谢谢!

HTML.file

var getID = function(playerName) {
  $.ajax({
    type: "POST",
    url:"test.php",
    dataType:'json', 
        data: {'url': "api/lol/na/v1.4/summoner/by-name/"+playerName+"?"},
    success: function(data){
       playerID = data[playerName].id;
       console.log(playerID);
    }
  });
};

因此,每当我调用ajax时,我都会向test.php文件发出ajax请求,并将url传递给它,然后php代码将使用url来获取来自游戏服务器并将结果发送回前端。

test.php的

<?php 
  header('Content-Type: application/json');

  $url = $_POST['url']; 

  $json = file_get_contents('https://na.api.pvp.net/'.$url.'api_key=key');

  $obj = json_decode($json);
  echo json_encode($obj, JSON_PRETTY_PRINT);
?>

1 个答案:

答案 0 :(得分:2)

只要Ajax请求只触发具有已建立会话的有效,经过身份验证的用户,这看起来就不错了。否则,任何人都可以使用任意'playerNames'来调用它。

它肯定会阻止您的API密钥被公开。