Javascript 如何使用php隐藏api密钥?

Javascript 如何使用php隐藏api密钥?,javascript,php,jquery,ajax,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/"+

各位。我正在尝试创建传奇联盟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);
?>

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


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

只要
$json
中的所有内容都是公共的,我就觉得不错。否则,在编码并返回之前,必须先取消设置某些元素。