2017-04-09 23 views
0

キーを.envファイルに安全に配置し、有料APIサービスにajaxリクエストを行いたいと思います。 私はJavascriptをファイルパブリック/ ajax.jsに.envファイルから安全にAPIキーをjavascriptに取得する方法 - Laravel

です(Ajaxコードを含む)私は、このような方法で取得するコード行に置くことができます:コントローラに$key = env('SECRET_API_KEY');をしてhttps://github.com/laracasts/PHP-Vars-To-Js-Transformerを使用して直接JavaScriptにそれを渡すが、その後IいくつかのXページに@include('footer')を入れなければならない。だから、ソースを確認すると、APIキーが表示されます。/

データを正常に取得できますが、これを防ぐにはどうすればいいですか?

私の現在のURL:url:"http://johndoe?param1=abc&param2=def&_token="+key, Ajaxコードです。

私は直接のjavascript $key = env('SECRET_API_KEY');にこれを置けば、私はエラーにUncaught ReferenceError: env is not defined

を取得したAPIキーを取得するための最良の方法は何ですか?

+0

を作ります。表示したくない場合は、「APIプロキシ」を設定する必要があります。あなたのJSはあなたのPHPコードを呼び出します。これは、 – JimL

+0

@jimLというキーを使ってAPIを呼び出します。私の場合、達成するための例や手順を示すことができます。 –

+0

JavaScriptアプリケーションからの呼び出しは行わないでください。サーバーを呼び出すと、APIが呼び出されます。次に、サーバーはajaxリクエストにAPI応答を返します。 – Ohgodwhy

答えて

2

JSが呼び出すルートを定義します。そのルートから、要求を処理し、有料サービスへのAPI呼び出しを行うコントローラと関数を定義します。あなたのアヤックスから

Route::get('api-call', '[email protected]'); 

//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()); 
} 

、あなたはJSでAPIキーを使用する場合、それはエンドユーザーに表示されますコールhttp://your-own-site/api-call

+0

感謝されます。私は今試してみる。私は1秒ごとにこれを行う必要があります。どのようなコードを1秒ごとに繰り返すのですか? –

+0

$ paramsとは何ですか?それを機能させるために含める必要がありますか? $ url = "url-to-domain?param1 = value1&param2 = value2&_token =" + $ api_key; –

+0

この場合、 '$ param' =' param1 = value1&param2 = value2'です。これは '$ request-> all();で既に取り込んでいるためです。 – EddyTheDove

関連する問題