如何使用php隐藏api密钥


How to hide api key using php?

每个人。我正在尝试创建传奇联盟api,但我需要隐藏api密钥。我知道没有办法向前端隐藏密钥,所以我就是这样做的,我不确定这是最好的方法。请帮帮我!!谢谢

HTML文件

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密钥被暴露。