516

cURL を使用して認証ヘッダーを渡すにはどうすればよいですか? ( で実行可能/usr/bin/curl)。

4

12 に答える 12

479

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ログインの章を参照してください。

于 2010-06-15T10:31:56.283 に答える
415

追加するだけなので、クリックスルーする必要はありません:

curl --user name:password http://www.example.com

または、OAuth 2 の送信認証を行おうとしている場合:

curl -H "Authorization: OAuth <ACCESS_TOKEN>" http://www.example.com
于 2011-12-31T18:42:37.940 に答える
223

ベアラー トークンは次のようになります。

curl -H "Authorization: Bearer <ACCESS_TOKEN>" http://www.example.com
于 2014-07-30T12:14:38.830 に答える
71

( 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);
于 2014-06-04T19:13:55.893 に答える
26

HTTP 基本認証の場合:

curl -H "Authorization: Basic <_your_token_>" http://www.example.com

_your_token_と URL を置き換えます。

于 2016-05-02T10:13:07.427 に答える
17

使用するときは、次のことに注意してください。 curl -H "Authorization: token_str" http://www.example.com

token_strAuthorization空白で区切る必要があります。そうしないと、サーバー側で環境が取得されませんHTTP_AUTHORIZATION

于 2012-04-12T12:35:06.340 に答える
7

この例には、次のものが含まれます。

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 

于 2021-05-24T21:29:52.593 に答える
0

簡単な例は、base64 に変換された承認でパラメーターを使用することです。

curl -XPOST 'http://exemplo.com/webhooks?Authorization=Basic%20dGVzdDoxMjM0NTYK'

于 2021-06-10T22:18:39.470 に答える