Gửi một yêu cầu HTTP với xác thực cơ bản

TypeScript:
Gửi một yêu cầu HTTP với xác thực cơ bản

Cách thực hiện:

import axios from 'axios';

// mã hóa tên người dùng và mật khẩu của bạn
const token = Buffer.from('yourUsername:yourPassword').toString('base64');
const url = 'https://your.api/endpoint';

// thiết lập yêu cầu HTTP với Axios
axios.get(url, {
  headers: {
    'Authorization': `Basic ${token}`
  }
})
.then(response => {
  console.log(response.data); // đây là kết quả mong đợi của bạn
})
.catch(error => {
  console.error("Oops, có gì đó không ổn!", error);
});

Kết quả mẫu:

{ "message": "Bạn vào rồi! Chào mừng đến với vùng API bí mật." }

Đào Sâu

Đã có một thời gian, trước khi OAuth và JWTs chiếm lĩnh cảnh quan, xác thực cơ bản là lựa chọn hàng đầu. Nó vẫn còn tiện lợi cho các công cụ nội bộ hoặc Proof of Concepts (PoCs). Ý tưởng rất đơn giản: ghim một tiêu đề với ‘Authorization’, sử dụng ‘Basic ’ + một ‘username:password’ được mã hóa base64. Voilà, bạn đã qua cổng.

Nhưng nó không phải luôn luôn là cầu vồng. Có rủi ro - nếu bạn không sử dụng HTTPS, bạn thực sự đang hô to thông tin đăng nhập của mình. Các lựa chọn khác? OAuth2 tokens, JWTs, API keys - chúng giống như những kiểu mạnh mẽ, kiểu im lặng. Chúng phục vụ mục đích tương tự nhưng với nhiều phức tạp và an toàn hơn.

Khi triển khai xác thực cơ bản trong TypeScript, lựa chọn phổ biến là axios hoặc fetch. Trong trường hợp của chúng ta, axios làm cho thiết lập tiêu đề tùy chỉnh trở nên dễ dàng. Ngoài ra, nó trả về promises, làm cho nó mơ ước với async/await.

Hãy nhớ rằng: ‘Basic’ sẽ sớm bộc lộ tuổi tác của nó trong thế giới web hiện đại nơi HTTPS là điều cần thiết và tiêu chuẩn an toàn cao hơn. Tuy nhiên, cho các mạng nội bộ hoặc nơi mà sự an toàn cao không quan trọng, nó là một giải pháp đơn giản.

Xem Thêm

Để biết thêm các phương thức xác thực và các phương pháp hay nhất về bảo mật: