每个人。我正在尝试创建传奇联盟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密钥被暴露。