如何从 .env 文件安全地检索 API 密钥到 javascript 视图 - Laravel

How to retrieve API key safely from .env file into javascript View - Laravel

我已将密钥安全地放在 .env 文件中,我想向付费 API 服务发出 ajax 请求。 我有 Javascript 文件(包含 ajax 代码),它位于 public/ajax.js

我可以用这种方式检索,把这行代码:$key = env('SECRET_API_KEY'); 放在控制器中,然后使用 https://github.com/laracasts/PHP-Vars-To-Js-Transformer 直接将它传递给 javascript 但后来我被迫把 @include('footer') 在某些 X 页面中。所以,当我检查源代码时,我看到了我的 API 键:/

我能够成功提取数据,但是如何防止这种情况?

我当前的 url:Ajax 代码中的 url:"http://johndoe?param1=abc&param2=def&_token="+key,

如果我直接把它放在 javascript $key = env('SECRET_API_KEY'); 我得到一个错误 Uncaught ReferenceError: env is not defined

检索 api 密钥的最佳方法是什么?

定义您的 JS 将调用的路由,从该路由定义一个控制器和函数来处理请求并对付费服务进行 API 调用。

Route::get('api-call', 'APIController@call');

//APIController
//use GuzzleHttp\Exception\GuzzleException;
//use GuzzleHttp\Client;
...

public function call(Request $request)
{
    $params = $request->all();

    $api_key = env('SECRET_API_KEY');
    $url = 'url-to-paid-service?' . $params . '&key=' . $api_key; 
    $client = new Client();
    $res = $client->get($url);

    return response()->json($res->getBody());
}

从您的 ajax 拨打电话 http://your-own-site/api-call