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.