Python - Xác thực HTTP

Xác thực là quá trình xác định xem yêu cầu có đến từ một người dùng hợp lệ có các đặc quyền cần thiết để sử dụng hệ thống hay không. Trong thế giới mạng máy tính, đây là một yêu cầu rất quan trọng vì nhiều hệ thống liên tục tương tác với nhau và cơ chế thích hợp cần đảm bảo rằng chỉ những tương tác hợp lệ mới xảy ra giữa các chương trình này.

Tên mô-đun python requestscó tính năng tích hợp để gọi các API khác nhau được cung cấp bởi các ứng dụng web đang phân phối cùng với thông tin đăng nhập của người dùng. Các thông tin đăng nhập này phải được nhúng vào chương trình gọi điện. Nếu các API xác minh nó thành công thì đăng nhập hợp lệ sẽ xảy ra.

Yêu cầu cài đặt

Chúng tôi cài đặt mô-đun python bắt buộc có tên yêu cầu để chạy chương trình xác thực.

pip install requests

Xác thực với Github

Dưới đây, chúng tôi thấy một cơ chế xác thực đơn giản chỉ liên quan đến tên người dùng và mật khẩu. Một phản hồi thành công cho biết đăng nhập hợp lệ.

import requests 
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
print r

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

 
      

Xác thực với Twitter

Chúng tôi cũng có thể chạy một chương trình để sử dụng api của twitter và đăng nhập thành công bằng cách sử dụng mã sau. Chúng tôi sử dụng phương thức OAuth1 có sẵn trong mô-đun yêu cầu để xử lý các thông số được yêu cầu bởi API Twitter. Như chúng ta có thể thấy, mô-đun yêu cầu có khả năng xử lý cơ chế xác thực phức tạp hơn liên quan đến khóa và mã thông báo thay vì chỉ cơ chế tên người dùng và mật khẩu.

import requests
from requests_oauthlib import OAuth1
url = 'https://api.twitter.com/1.1/account/verify_credentials.json'
auth = OAuth1('YOUR_APP_KEY', 'YOUR_APP_SECRET',
              'USER_OAUTH_TOKEN', 'USER_OAUTH_TOKEN_SECRET')
requests.get(url, auth=auth)

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

{
  "errors": [
    {
      "code": 215,
      "message": "Bad Authentication data."
    }
  ]
}

Nhưng bằng cách sử dụng các giá trị thích hợp cho các tham số OAuth1, bạn sẽ nhận được phản hồi thành công.