Định cấu hình OAuth cho ứng dụng

Để định cấu hình OAuth cho ứng dụng, bạn thiết lập quy trình làm việc OAuth và bật phạm vi OAuth của API Di chuyển dữ liệu.

Thiết lập quy trình làm việc OAuth

Để thiết lập quy trình OAuth cho ứng dụng, hãy làm theo các bước cơ bản trong tài liệu về Google Identity.

Hầu hết các nhà phát triển đều sử dụng luồng Ứng dụng web phía máy chủ để lấy sự đồng ý OAuth, nhưng bạn cũng có thể sử dụng luồng Ứng dụng web JavaScript hoặc luồng Ứng dụng dành cho thiết bị di động và máy tính.

Quá trình xuất có thể mất nhiều thời gian hơn thời gian tồn tại của mã truy cập hoặc người dùng có thể cấp quyền truy cập trong 30 hoặc 180 ngày. Bạn có thể cần phải lấy mã làm mới và định kỳ trao đổi mã đó để lấy mã truy cập mới. Để biết thêm thông tin chi tiết, hãy xem bài viết Làm mới mã thông báo truy cập cho Ứng dụng webLàm mới mã thông báo truy cập cho Ứng dụng di động và ứng dụng máy tính.

Lưu ý quan trọng: Người dùng chỉ có thể gia hạn mã thông báo OAuth nếu ứng dụng OAuth của bạn có trạng thái phát hành là Đang hoạt động, chứ không phải Đang thử nghiệm. Ngoài ra, mã thông báo được cấp cho ứng dụng OAuth có trạng thái phát hành Thử nghiệm luôn hết hạn sau 7 ngày ngay cả khi bạn chọn thời hạn 30 hoặc 180 ngày. Để biết thông tin chi tiết, hãy xem bài viết Thiết lập màn hình xin phép bằng OAuth.

Phạm vi OAuth của Data Portability API

Khi bạn định cấu hình ứng dụng Data Portability API cho OAuth, hãy bật các phạm vi OAuth của Data Portability API có liên quan đến ứng dụng của bạn. Một số phạm vi là sensitiverestricted và phải tuân thủ các yêu cầu bổ sung.

Khi bạn thêm các phạm vi API di chuyển dữ liệu vào luồng OAuth, có thể có trường hợp người dùng đồng ý với một số nhưng không phải tất cả các phạm vi. Ứng dụng của bạn phải có khả năng xử lý các trường hợp này bằng cách:

  • Cho phép xuất một phần dữ liệu
  • Thông báo cho người dùng rằng họ chưa chọn tất cả các phạm vi cần thiết (và không thành công một cách linh hoạt)
  • Yêu cầu người dùng đồng ý về các quyền còn lại

Ngoài ra, người dùng sẽ chọn cấp cho bạn quyền truy cập vào dữ liệu của họ một lần hoặc trong 30 hoặc 180 ngày.

  • Nếu người dùng cấp cho bạn quyền truy cập một lần, thì ứng dụng của bạn được phép thực hiện một lần xuất dữ liệu theo sự đồng ý cụ thể đó. Để tải lại dữ liệu, bạn cần có sự đồng ý mới của người dùng.
  • Nếu người dùng cấp cho bạn quyền truy cập dựa trên thời gian, thì ứng dụng của bạn được phép thực hiện hoạt động xuất dữ liệu trong khoảng thời gian đã chỉ định hoặc cho đến khi người dùng thu hồi sự đồng ý.
  • Bạn cũng có thể chọn áp dụng bộ lọc thời gian cho yêu cầu xuất dữ liệu của mình trong một khoảng thời gian cụ thể, chẳng hạn như 6 tháng qua.

Bạn cũng cần lưu ý rằng trong quy trình OAuth, ứng dụng của bạn không biết Tài khoản Google nào đã được dùng để đồng ý. Mã thông báo OAuth mà ứng dụng của bạn nhận được là mờ.

Nếu bạn đang tìm thông tin về cách người dùng chia sẻ dữ liệu, hãy xem bài viết Chia sẻ bản sao dữ liệu của bạn với bên thứ ba.

Hạn chế về phạm vi

Phần này trình bày các quy định hạn chế trong phạm vi dẫn đến lỗi.

Phạm vi kết hợp

Bạn không thể kết hợp các yêu cầu về phạm vi API Di chuyển dữ liệu (chẳng hạn như https://www.googleapis.com/auth/dataportability.*) với các phạm vi khác (chẳng hạn như https://www.googleapis.com/auth/userinfo.email). Sau đây là ví dụ về một yêu cầu không hợp lệ, trong đó phần bị hạn chế được in đậm:

https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search+https://www.googleapis.com/auth/userinfo.email&
include_granted_scopes=false

Phạm vi đã cấp trước đó

Bạn không bao giờ được đặt include_granted_scopes=true khi yêu cầu phạm vi DPAPI. Sau đây là ví dụ về một yêu cầu không hợp lệ, trong đó phần bị hạn chế được in đậm:

https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search&
include_granted_scopes=true

Quá nhiều phạm vi

Nếu yêu cầu của bạn có quá nhiều phạm vi được thêm vào, bạn có thể gặp lỗi 400 bad request. Điều này xảy ra khi chiều dài URL vượt quá giới hạn được hỗ trợ trong trình duyệt. Để giải quyết, hãy chia các yêu cầu về phạm vi thành nhiều lô nhỏ hơn và sử dụng tính năng Uỷ quyền gia tăng để yêu cầu sự đồng ý cho từng lô.

Danh mục phạm vi

Để biết danh sách tất cả phạm vi OAuth mà Data Portability API hỗ trợ và các danh mục của các phạm vi đó, hãy xem phần Các phạm vi OAuth hiện có. Để biết danh sách tất cả nhóm tài nguyên và phạm vi OAuth mà một dịch vụ cụ thể hỗ trợ, hãy xem trang tham khảo giản đồ cho dịch vụ đó.