如何在PHP和Javascript之间隐藏我的API密钥?

Jas*_*hen 0 javascript reactjs

这是我在Reactjs面临的挑战,尽管我不相信它必然归功于它.我正在尝试在React中进行API调用.虽然它有效,但代码还会显示我的API密钥,下面用我的javascript变量表示sting.当我在浏览器中预览代码时,sting很清楚地显示了我的API密钥.

render: function() {
    if (this.state.trial) {
      return this.iftroo();
    }
  } 
});

var Troo = React.createClass({
render: function() {
  var sting = "<?php
  $con = mysqli_connect('localhost', 'root', '', 'worldly') or die("Trying");
  $query = "select * from testi";
  $result = mysqli_query($con, $query);
  while($row = mysqli_fetch_array($result)){
  echo $row["userName"];}
  ?>";  
  var weather = new XMLHttpRequest();
  weather.open("GET", "http://api.openweathermap.org/data/2.5/weather?q=London,uk&units=imperial&appid="+sting, false);
  weather.send(null);
  var r = JSON.parse(weather.response);
  var tempurature = r.main.temp;

  return (
    <p>
      {tempurature}
    </p>
Run Code Online (Sandbox Code Playgroud)

我知道为了让这个工作,我可能不得不在我的PHP中嵌入我的javascript代码.但是,这样做会导致错误,例如PHP无法识别javascript var字符.

我可以采取哪些措施来隐藏浏览器中的API密钥?

Que*_*tin 6

如果要从浏览器中隐藏API密钥,则必须永远不要将其提供给浏览器.

您不能使用客户端JavaScript的API密钥并将其隐藏在客户端之外.

从服务器发出需要使用它的任何HTTP请求(例如,使用PHP的cURL库).