การส่งคำขอ HTTP ด้วยการตรวจสอบสิทธิ์พื้นฐาน

Ruby:
การส่งคำขอ HTTP ด้วยการตรวจสอบสิทธิ์พื้นฐาน

วิธีการ:

เพื่อส่งคำขอ HTTP โดยมีการยืนยันตัวตนแบบพื้นฐาน คุณจะใช้โมดูล Net::HTTP ใน Ruby โดยปกติ นี่คือตัวอย่างอย่างรวดเร็ว:

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)

response = Net::HTTP.start(uri.hostname, uri.port) {|http|
  http.request(request)
}

puts response.body

ถ้าคุณรันโค้ดนี้ด้วยข้อมูลประจำตัวที่ถูกต้อง คุณจะเห็นเนื้อหาตอบกลับแสดงออกมา ถ้าข้อมูลประจำตัวไม่ถูกต้อง คุณจะได้รับข้อความแสดงข้อผิดพลาด

ศึกษาเพิ่มเติม

การยืนยันตัวตนแบบพื้นฐานมีประวัติยาวนานเป็นส่วนหนึ่งของโพรโทคอลเว็บ ย้อนกลับไปถึง RFC แรกๆที่กำหนดการทำงานของอินเทอร์เน็ต มันเป็นวิธีง่ายๆในการควบคุมการเข้าถึง: ชื่อผู้ใช้และรหัสผ่านถูกเข้ารหัสด้วย Base64 และส่งผ่านส่วนหัว HTTP

อย่างไรก็ตาม การยืนยันตัวตนแบบพื้นฐานส่งข้อมูลประจำตัวในรูปแบบข้อความธรรมดา (ถึงแม้จะเข้ารหัสแล้วก็ตาม) ดังนั้นมันจึงไม่ปลอดภัยเมื่อใช้งานผ่าน HTTP จึงดีกว่าที่จะใช้ HTTPS เพื่อรักษาความปลอดภัยของข้อมูลประจำตัวจากการถูกมองเห็นโดยผู้อื่น

มีทางเลือกที่ปลอดภัยกว่าเช่น OAuth ซึ่งมักใช้สำหรับการยืนยันตัวตนของ API OAuth อนุญาตให้ผู้ใช้เข้าพักสิทธิ์การเข้าถึงของบุคคลที่สามโดยไม่ใช้ข้อมูลประจำตัว อย่างไรก็ตาม การยืนยันตัวตนแบบพื้นฐานยังคงใช้อยู่ โดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชันภายในและสคริปต์ที่ต้องการการทำงานอย่างรวดเร็วและง่ายดาย

รายละเอียดหนึ่งที่ควรทราบคือ Net::HTTP ของ Ruby จะไม่จัดการ Basic Auth โดยตรงจนกว่าคุณจะใช้วิธี basic_auth อย่างชัดเจน นอกจากนี้ยังสำคัญที่ต้องจัดการกับข้อยกเว้นและคำตอบผิดพลาดที่อาจเกิดขึ้นจากคำขอ HTTP ได้อย่างถูกต้อง

ดูเพิ่มเติม