Надсилання HTTP-запиту з базовою автентифікацією

JavaScript:
Надсилання HTTP-запиту з базовою автентифікацією

Як це зробити:

// Залучаємо вбудований модуль для відправки HTTP-запитів
const https = require('https');

// Додаємо логін та пароль
const auth = 'myUsername:myPassword';

// Кодуємо в base64
const encodedAuth = Buffer.from(auth).toString('base64');

// Задаємо параметри запиту
const options = {
  hostname: 'example.com',
  port: 443,
  path: '/api/data',
  method: 'GET',
  headers: {
    'Authorization': `Basic ${encodedAuth}`
  }
};

// Виконуємо запит
const req = https.request(options, (res) => {
  let responseBody = '';
  
  res.on('data', (chunk) => {
    responseBody += chunk;
  });

  res.on('end', () => {
    console.log('Отриманий відповідь: ', responseBody);
  });
});

req.on('error', (e) => {
  console.error('Проблема з запитом: ', e.message);
});

req.end();

Приклад виводу:

Отриманий відповідь: {"some":"data"}

Глибше занурення

Базова аутентифікація — старий, але простий спосіб захисту. Виникла на початку вебу, в HTTP/1.0. Забезпечує мінімальну безпеку, оскільки логін і пароль кодуються, але не шифруються. Тому, важливо використовувати HTTPS.

Сьогодні є безпечніші альтернативи: OAuth, API ключі, токени. Проте, базова аутентифікація все ще корисна для простих випадків або внутрішніх мереж.

Деталі реалізації: логін і пароль передаються через заголовок Authorization у запиті. Кодування в base64 дозволяє передавати текст, що містить символи не з ASCII.

Дивись також