cURL を使用して認証ヘッダーを渡すにはどうすればよいですか? ( で実行可能/usr/bin/curl
)。
12 に答える
http://curl.se/docs/httpscripting.html
パート6を参照してください。HTTP認証
HTTP認証
HTTP認証は、サーバーにユーザー名とパスワードを通知して、実行中の要求の実行が許可されていることをサーバーが確認できるようにする機能です。HTTPで使用される基本認証(curlがデフォルトで使用するタイプ)はプレーン テキストベースです。つまり、ユーザー名とパスワードは少し難読化されただけで送信されますが、ユーザーとリモートサーバー間のネットワークを盗聴する人は誰でも完全に読み取ることができます。
認証にユーザーとパスワードを使用するようにcurlに指示するには:
curl --user name:password http://www.example.com
サイトで別の認証方法が必要になる場合があり(サーバーから返されるヘッダーを確認してください)、-ntlm、-digest、-negotiate、さらには--anyauthが適切なオプションになる場合があります。
HTTPアクセスは、HTTPプロキシを使用することによってのみ利用できる場合があります。これは、さまざまな企業で特に一般的であるようです。HTTPプロキシは、クライアントがインターネットにアクセスできるようにするために、独自のユーザーとパスワードを必要とする場合があります。curlでそれらを指定するには、次のように実行します。
curl --proxy-user proxyuser:proxypassword curl.haxx.se
プロキシでNTLM方式を使用して認証を行う必要がある場合は、-proxy-ntlmを使用し、ダイジェストが必要な場合は--proxy-digestを使用します。
これらのユーザー+パスワードオプションのいずれかを使用し、パスワードの部分を省略した場合、curlは対話形式でパスワードの入力を求めます。
プログラムの実行時に、システムの実行中のプロセスを一覧表示するときに、そのパラメーターが表示される可能性があることに注意してください。したがって、他のユーザーは、パスワードをプレーンなコマンドラインオプションとして渡すと、パスワードを監視できる可能性があります。これを回避する方法があります。
これがHTTP認証の仕組みですが、非常に多くのWebサイトがログインなどを提供するときにこの概念を使用しないことに注意してください。詳細については、以下のWebログインの章を参照してください。
追加するだけなので、クリックスルーする必要はありません:
curl --user name:password http://www.example.com
または、OAuth 2 の送信認証を行おうとしている場合:
curl -H "Authorization: OAuth <ACCESS_TOKEN>" http://www.example.com
ベアラー トークンは次のようになります。
curl -H "Authorization: Bearer <ACCESS_TOKEN>" http://www.example.com
( php-curlの回答をお探しの方へ)
$service_url = 'https://example.com/something/something.json';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "username:password"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //IMP if the url has https and you don't want to verify source certificate
$curl_response = curl_exec($curl);
$response = json_decode($curl_response);
curl_close($curl);
var_dump($response);
HTTP 基本認証の場合:
curl -H "Authorization: Basic <_your_token_>" http://www.example.com
_your_token_
と URL を置き換えます。
使用するときは、次のことに注意してください。
curl -H "Authorization: token_str" http://www.example.com
token_str
Authorization
空白で区切る必要があります。そうしないと、サーバー側で環境が取得されませんHTTP_AUTHORIZATION
。
この例には、次のものが含まれます。
- POST リクエスト
- ヘッダーのコンテンツ タイプ
- ヘッダー承認
- JSON データのデータ フラグ
- Base64 でエンコードされたトークン
- Ref-1: curl 認証ヘッダー
- Ref-2: curl POST リクエスト
curl -X POST -H "Content-Type: application/json" -d '{"name”:”Johnny B. Goode”, "email”:”johnny.b.goode@mail.com"}' -H "Authorization: Bearer $(echo -n Guitar Maestro | base64)" https://url-address.com
簡単な例は、base64 に変換された承認でパラメーターを使用することです。
curl -XPOST 'http://exemplo.com/webhooks?Authorization=Basic%20dGVzdDoxMjM0NTYK'