2016-12-08 2 views
0

私はRESTful APIを使用しています。すべてのデータを取得したいと思います。これまでのところとても良いですが、より安全にしたいと思っています。私はAPIトークンをURLに直接渡したくありません。私はguzzelのauth関数を使いたいが、動かない。URLにguiキーを追加する

例:ベースURLはhttps://example-api-site.comであり、私はより詳細な情報を取得したいので、私は、私は認証機能に

コードを使用したい、ここで(作品)てAuthKeyを使用するのではなく、サイト/location.name?lang=en&input=someLocation&authKey=に行く:

$authKey = 'authKey123'; 
$client = new \GuzzleHttp\Client(['base_uri' => 'https://example-api-site.com']); 
$response = $client->request('GET',"/location.name?lang=en&input=someLocation&authKey=",[ 
    'auth' => [$authKey, null]  
]); 
echo $body = $response->getBody(); 

エコーの出力は、「無効な認証キー:」です

私はすべてのコメントに感謝!あなたは、生のAuthorizationヘッダを探しているかもしれ

+0

APIの認証の仕組みによって異なります。ドキュメントで 'authKey'をURLパラメータとして指定すると、それを行う必要があります。 – Vuldo

+0

お返事ありがとうございます。はい、それはパラメータです。これらのリンクの1つをクリックすると、 '&authKey ='という行が追加されます。したがって、これには安全なオプションはありませんか? – thissven

+1

これは本当にAPIプロバイダに依存しています。あなたは認証を所有していないので、そうした認証を使用している場合には何もできません。 – Vuldo

答えて

0

$response = $client->get('YOUR_ENDPOINT', [ 
    'Authorization' => [ 
     'Basic ' . base64_encode('[email protected]:password') 
    ] 
]); 
+0

私の例でこれを使用してもよろしいですか?このバージョンの私のバージョンはどちらもうまくいきませんでしたので、どちらでも – thissven

+0

あなたのAPIドキュメントについての詳細を教えてください。 – softwarevamp

0

'auth'オプションはGETパラメータと同じではありませんが、基本認証のためです。したがって、APIがGETパラメータのみを受け入れるならば、あなたはそれに固執しています。

ところで、暗黙のセキュリティは本当のセキュリティではありません。既にHTTPSを使用しているので、心配する理由はありません。