Sử dụng OAuth

API xác thực địa chỉ hỗ trợ sử dụng OAuth 2.0 để xác thực. Google hỗ trợ các trường hợp OAuth 2.0 phổ biến như tình huống dành cho máy chủ web.

Tài liệu này mô tả cách chuyển mã thông báo OAuth sang lệnh gọi API xác thực địa chỉ trong môi trường phát triển. Để biết hướng dẫn về cách sử dụng OAuth trong môi trường sản xuất, hãy xem phần Xác thực tại Google.

Trước khi bắt đầu

Trước khi bắt đầu sử dụng API xác thực địa chỉ, bạn cần một dự án có tài khoản thanh toán và bật API xác thực địa chỉ. Bạn nên tạo nhiều Chủ sở hữu dự án và Quản trị viên thanh toán để nhóm của bạn luôn có người có vai trò này. Để tìm hiểu thêm, hãy xem bài viết Thiết lập trong Cloud Console.

Giới thiệu về OAuth

Có nhiều cách để tạo và quản lý mã thông báo truy cập bằng OAuth dựa trên môi trường triển khai của bạn.

Ví dụ: hệ thống Google OAuth 2.0 hỗ trợ tương tác từ máy chủ đến máy chủ, chẳng hạn như các tương tác giữa ứng dụng của bạn và dịch vụ của Google. Đối với trường hợp này, bạn cần có một tài khoản dịch vụ, tài khoản này thuộc về ứng dụng của bạn thay vì một người dùng cuối riêng lẻ. Ứng dụng của bạn gọi API Google thay mặt cho tài khoản dịch vụ nên người dùng không phải trực tiếp tham gia. Để biết thêm thông tin về các phương thức xác thực, hãy xem phần Xác thực tại Google.

Ngoài ra, bạn có thể sử dụng API xác thực địa chỉ như một phần của ứng dụng dành cho thiết bị di động Android hoặc iOS. Để biết thông tin chung về cách sử dụng OAuth với API xác thực địa chỉ, bao gồm thông tin về cách quản lý mã thông báo truy cập cho nhiều môi trường triển khai, hãy xem Sử dụng OAuth 2.0 để truy cập API Google.

Giới thiệu về phạm vi OAuth

Để sử dụng OAuth với API xác thực địa chỉ, bạn phải chỉ định mã thông báo OAuth như sau:

  • https://www.googleapis.com/auth/cloud-platform

Ví dụ: Hãy thử các lệnh gọi API REST trong môi trường phát triển cục bộ của bạn

Nếu muốn dùng thử API xác thực địa chỉ bằng mã thông báo OAuth, nhưng chưa thiết lập môi trường để tạo mã thông báo, thì bạn có thể sử dụng quy trình trong phần này để gọi điện.

Ví dụ này mô tả cách sử dụng mã thông báo OAuth do Application Default Login (ADC) cung cấp để thực hiện lệnh gọi. Để biết thông tin về cách sử dụng ADC để gọi API Google bằng thư viện ứng dụng, hãy xem phần Xác thực bằng thư viện ứng dụng.

Điều kiện tiên quyết

Trước khi bạn có thể tạo yêu cầu REST bằng ADC, hãy sử dụng Google Cloud CLI để cung cấp thông tin xác thực cho ADC:

  1. Tạo một dự án và bật tính năng thanh toán bằng cách làm theo các bước trong bài viết Thiết lập trong Google Cloud Console.
  2. Cài đặt và khởi chạy CLI gcloud.
  3. Chạy lệnh gcloud sau trên máy cục bộ để tạo tệp thông tin xác thực:

    gcloud auth application-default login
  4. Màn hình đăng nhập được hiển thị. Sau khi bạn đăng nhập, thông tin đăng nhập của bạn sẽ được lưu trữ trong tệp thông tin xác thực cục bộ mà ADC sử dụng.

Để biết thêm thông tin, hãy xem phần Môi trường phát triển cục bộ của tài liệu Cung cấp thông tin xác thực cho thông tin đăng nhập mặc định của ứng dụng.

Thực hiện yêu cầu REST

Trong ví dụ này, bạn chuyển hai tiêu đề của yêu cầu:

  • Truyền mã thông báo OAuth trong tiêu đề Authorization bằng cách sử dụng lệnh sau để tạo mã thông báo:

    gcloud auth application-default print-access-token

    Mã thông báo được trả về có phạm vi https://www.googleapis.com/auth/cloud-platform.

  • Truyền mã hoặc tên của dự án trên Google Cloud mà bạn đã bật tính năng thanh toán trong tiêu đề X-Goog-User-Project. Để tìm hiểu thêm, hãy xem bài viết Thiết lập trong Cloud Console.

Ví dụ sau đây gọi điện đến API xác thực địa chỉ bằng mã thông báo OAuth:

curl -X POST -d '{
  "address": {
    "regionCode": "US",
    "locality": "Mountain View",
    "addressLines": ["1600 Amphitheatre Pkwy"]
  }
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://addressvalidation.googleapis.com/v1:validateAddress"

Khắc phục sự cố

Nếu yêu cầu của bạn trả về một thông báo lỗi về việc API này không hỗ trợ thông tin đăng nhập của người dùng cuối, hãy xem phần Thông tin đăng nhập của người dùng không hoạt động.