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

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

Cách thực hiện:

Để gửi một yêu cầu HTTP với xác thực cơ bản, bạn thường sử dụng module Net::HTTP trong Ruby. Dưới đây là một ví dụ nhanh:

require 'net/http'
require 'uri'

uri = URI('http://example.com')
username = 'your_username'
password = 'your_password'

request = Net::HTTP::Get.new(uri)
request.basic_auth(username, password)

phản hồi = Net::HTTP.start(uri.hostname, uri.port) {|http|
  http.request(request)
}

puts phản hồi.body

Nếu bạn chạy mã này với thông tin đăng nhập hợp lệ, bạn sẽ thấy nội dung của phản hồi được in ra. Nếu thông tin đăng nhập không hợp lệ, bạn sẽ nhận được thông báo lỗi.

Tìm hiểu kỹ hơn

Xác thực cơ bản có một lịch sử lâu dài trong các giao thức web, trở lại với các RFC đầu tiên định nghĩa hoạt động của internet. Đó là một phương pháp kiểm soát truy cập đơn giản: tên người dùng và mật khẩu được mã hóa bằng Base64 và truyền trong tiêu đề HTTP.

Tuy nhiên, xác thực cơ bản truyền thông tin đăng nhập dưới dạng văn bản thuần túy (mặc dù đã được mã hóa), vì vậy nó không an toàn qua HTTP. Sử dụng HTTPS sẽ tốt hơn để giữ thông tin đăng nhập an toàn khỏi những ánh mắt tò mò.

Có những phương pháp thay thế an toàn hơn như OAuth, thường được sử dụng cho xác thực API. OAuth cho phép người dùng ủy quyền truy cập của bên thứ ba mà không chia sẻ thông tin đăng nhập. Tuy nhiên, xác thực cơ bản vẫn được sử dụng, đặc biệt là cho các ứng dụng nội bộ và việc viết script nhanh chóng.

Một chi tiết cần lưu ý là Net::HTTP của Ruby không xử lý Xác thực Cơ bản nguyên thủy cho đến khi bạn rõ ràng sử dụng phương thức basic_auth. Cũng rất quan trọng để xử lý các ngoại lệ và phản hồi lỗi có thể xuất hiện từ yêu cầu HTTP.

Xem Thêm