基本認証を使用したHTTPリクエストの送信

PHP:
基本認証を使用したHTTPリクエストの送信

How to: (やり方)

PHPでの基本的な認証を使ったHTTPリクエストの例です。

<?php
$username = 'your_username';
$password = 'your_password';
$url = 'https://example.com/api/data';

$context = stream_context_create([
    'http' => [
        'header' => 'Authorization: Basic ' . base64_encode("$username:$password"),
        'method' => 'GET',
    ]
]);

$result = file_get_contents($url, false, $context);
if ($result !== false) {
    echo $result;
} else {
    echo 'Request failed.';
}
?>

このコードは、与えられたユーザー名とパスワードを使ってHTTP GETリクエストを送信し、結果を表示します。

Deep Dive (詳細情報)

HTTPベーシック認証は、RFC7617で定義されており、インターネットの初期から使用されています。Basic認証はシンプルですが、ユーザー名とパスワードがBase64でエンコードされているだけなので、HTTPS経由での使用が推奨されます。

もっと安全性の高い代替手段としては、OAuthやAPIキーがあります。ただし、これらは実装が複雑になることがあります。

送信する際、Authorization ヘッダーにユーザー名とパスワードをBase64エンコードした値を付け加えます。stream_context_create 関数は、リクエストにオプションを設定するために使用されます。この方法で、PHPのfile_get_contents 関数を用いてリモートコンテンツを取得することが可能になります。

See Also (関連情報)