如何从 .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¶m2=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
我已将密钥安全地放在 .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¶m2=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