Python:
การส่งคำขอ HTTP ด้วยการตรวจสอบสิทธิ์พื้นฐาน
วิธีการ:
นี่คือวิธีที่คุณสามารถใช้ Python เพื่อสื่อสารกับเซิร์ฟเวอร์โดยใช้ Basic Auth
import requests
from requests.auth import HTTPBasicAuth
# แทนที่ด้วยข้อมูลรับรองจริงของคุณและ API endpoint ที่คุณต้องการเข้าถึง
username = 'cooluser'
password = 'supersecretpassword'
url = 'https://api.someservice.com/data'
response = requests.get(url, auth=HTTPBasicAuth(username, password))
# ลองดูว่าเราได้อะไรกลับมา
print(response.status_code)
print(response.json()) # สมมติว่าการตอบกลับอยู่ในรูปแบบ JSON
ผลลัพธ์อาจจะดูเหมือนนี้ถ้าทุกอย่างราบรื่น:
200
{'data': 'ของลับของคุณ!'}
แต่ถ้าคุณกรอกข้อมูลรับรองผิด:
401
นั่นคือสัญญาณห้ามเข้าอย่างชัดเจนเลยนะ
ศึกษาลึกซึ้ง
ด้วยประวัติศาสตร์แล้ว, HTTP Basic Auth เป็นวิธีที่เก่าแก่ที่สุดสำหรับความปลอดภัยบนเว็บ วิธีง่ายๆ ในการทำความรู้จักกับเว็บไซต์ มันไม่ค่อยปลอดภัยถ้าใช้คนเดียวเพราะมันส่งข้อมูลรับรองในรูปแบบข้อความธรรมดา แค่เข้ารหัสเป็น base64 - ไม่ใช่การเข้ารหัส ควรใช้ HTTPS เพื่อป้องกันไม่ให้ข้อมูลรับรองง่ายๆ ถูกรวบรวมเหมือนลูกอมจากเด็ก
มีวิธีการที่ปลอดภัยกว่าอย่าง เช่น Digest Access Authentication ที่รหัสผ่านไม่ถูกส่งในรูปแบบธรรมดาไปยังเครือข่าย OAuth เป็นอีกหนึ่งวิธีที่ใหญ่โต โดยเฉพาะสำหรับ API ในปัจจุบัน มันเหมือนกับการออกบัตรผ่านชั่วคราวมากกว่าการแสดงบัตรประจำตัวทุกครั้ง
ภายใต้ฝาครอบ, ไลบรารี requests
กำลังเข้ารหัสชื่อผู้ใช้และรหัสผ่านของคุณและวางไว้ในหัวข้อ Authorization
ที่จัดรูปแบบเหมือน Basic base64encodedcredentials
เซิร์ฟเวอร์จะถอดรหัสหัวข้อนี้ เช็คข้อมูลรับรองของคุณ และถ้าคุณเป็นผู้ใช้ที่ถูกต้อง จะอนุญาตให้คุณเข้าถึง
ดูเพิ่มเติม
- คู่มืออย่างเป็นทางการของไลบรารี
requests
ให้ข้อมูลเชิงลึกเกี่ยวกับ auth และอื่นๆ: https://docs.python-requests.org/en/latest/ http.client
สำหรับคนที่ต้องการทำงานโดยไม่ใช้ไลบรารีภายนอก: https://docs.python.org/3/library/http.client.html- Real Python แนะนำเบื้องต้นเกี่ยวกับ HTTP และ Python: https://realpython.com/python-requests/