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

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

How to: (方法)

import axios from 'axios';

async function fetchWithBasicAuth(url: string, username: string, password: string) {
  try {
    const response = await axios.get(url, {
      auth: {
        username,
        password
      }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Authentication failed:', error);
  }
}

// 例: 'https://api.example.com/data' へのベーシック認証を使ったリクエスト
fetchWithBasicAuth('https://api.example.com/data', 'my_username', 'my_password');

Sample Output (サンプル出力):

{ "some": "data" }

Or, using Node.js built-in https module:

import https from 'https';
import { Buffer } from 'buffer';

function fetchWithBasicAuth(url: string, username: string, password: string) {
  const encodedAuth = Buffer.from(`${username}:${password}`).toString('base64');
  const options = {
    headers: {
      'Authorization': `Basic ${encodedAuth}`
    }
  };

  https.get(url, options, (res) => {
    let data = '';
    res.on('data', (chunk) => data += chunk);
    res.on('end', () => console.log(data));
  }).on('error', (err) => {
    console.error('Authentication failed:', err);
  });
}

fetchWithBasicAuth('https://api.example.com/secure-data', 'my_username', 'my_password');

Deep Dive (詳細情報)

ベーシック認証はHTTPプロトコルで最も単純な認証の形式。RFC 7617に定義され、初期のウェブから存在。安全でないことが知られ、今はTLS(HTTPS)と併用される。ベーシック認識以外に、OAuthやBearer認証などのより安全な方法もある。

内部で、ユーザー名とパスワードはコロン(:)で連結され、Base64でエンコードされてAuthorizationヘッダーにセットされる。しかし、Base64は暗号化ではなくエンコード手法なので、セキュリティのためHTTPSが必須。

TypeScriptではaxiosのようなライブラリやNode.jsのhttp/httpsモジュールを使って実装可能。上記の例では、最初にaxiosを使ったシンプルな例を紹介。次にノードの組み込みモジュールを使用した処理方法を説明。

See Also (関連情報)