Thư viện JavaScript của Bên thứ ba ủy quyền cho trang web – Tài liệu tham khảo API

Tài liệu tham khảo này mô tả API Thư viện JavaScript cấp phép Google 3P mà bạn có thể sử dụng để tải mã ủy quyền hoặc mã truy cập từ Google.

Phương thức: google.accounts.oauth2.initCodeClient

Phương thức initCodeClient khởi chạy và trả về một ứng dụng mã, với các cấu hình trong tham số.

google.accounts.oauth2.initCodeClient(config: CodeClientConfig)

Loại dữ liệu: CodeClientConfig

Bảng sau đây liệt kê các thuộc tính của loại dữ liệu CodeClientConfig.

Thuộc tính
client_id Bắt buộc. Mã ứng dụng khách cho ứng dụng của bạn. Bạn có thể tìm thấy giá trị này trong Bảng điều khiển API.
scope Bắt buộc. Danh sách phạm vi được phân tách bằng dấu cách xác định tài nguyên mà ứng dụng của bạn có thể thay mặt người dùng truy cập. Những giá trị này thông báo cho người dùng về màn hình xin phép mà Google hiển thị.
include_granted_scopes Không bắt buộc, mặc định là true. Cho phép các ứng dụng dùng lệnh ủy quyền gia tăng để yêu cầu quyền truy cập vào các phạm vi bổ sung trong bối cảnh. Nếu bạn đặt giá trị của tham số này thành false và yêu cầu cấp quyền đã được cấp, thì mã truy cập mới sẽ chỉ bao gồm mọi phạm vi mà scope đã yêu cầu trong CodeClientConfig này.
redirect_uri Cần thiết cho trải nghiệm người dùng chuyển hướng. Xác định nơi máy chủ API chuyển hướng người dùng sau khi người dùng hoàn tất luồng ủy quyền. Giá trị này phải khớp chính xác với một trong các URI chuyển hướng được ủy quyền cho ứng dụng khách OAuth 2.0 mà bạn đã định cấu hình trong Bảng điều khiển API và phải tuân thủ các quy tắc xác thực URI chuyển hướng của chúng tôi. Trải nghiệm người dùng bật lên sẽ bỏ qua thuộc tính này.
callback Cần thiết cho trải nghiệm người dùng bật lên. Hàm JavaScript xử lý phản hồi mã được trả về. Trải nghiệm người dùng chuyển hướng sẽ bỏ qua thuộc tính này.
state Không bắt buộc. Được đề xuất cho trải nghiệm người dùng chuyển hướng. Chỉ định mọi giá trị chuỗi mà ứng dụng dùng để duy trì trạng thái giữa yêu cầu cấp quyền và phản hồi của máy chủ uỷ quyền.
enable_granular_consent Không bắt buộc, mặc định là true. Nếu bạn đặt thành false, các quyền trong Tài khoản Google chi tiết hơn sẽ bị vô hiệu hoá đối với các mã ứng dụng khách OAuth được tạo trước năm 2019. Nếu bạn đặt cả enable_granular_consentenable_serial_consent, thì chỉ giá trị enable_granular_consent sẽ có hiệu lực và giá trị enable_serial_consent sẽ bị bỏ qua.

Không làm ảnh hưởng đến các mã ứng dụng khách OAuth mới vì các quyền chi tiết hơn luôn được bật cho các mã này.
enable_serial_consent Không dùng nữa, bạn nên sử dụng enable_granular_consent. Thao tác này có tác dụng tương tự như enable_granular_consent. Các ứng dụng hiện có sử dụng enable_serial_consent có thể tiếp tục làm như vậy, nhưng bạn nên cập nhật mã để sử dụng enable_granular_consent trong lần cập nhật ứng dụng tiếp theo.
login_hint Không bắt buộc. Nếu ứng dụng của bạn biết người dùng nào nên ủy quyền yêu cầu, ứng dụng có thể sử dụng thuộc tính này để cung cấp gợi ý đăng nhập cho Google. Khi thành công, lựa chọn tài khoản sẽ bị bỏ qua. Giá trị trường mã phụ địa chỉ email hoặc địa chỉ email cho người dùng mục tiêu. Để biết thêm thông tin, hãy xem trường login_hint trong tài liệu của OpenID Connect.
hd Không bắt buộc. Nếu ứng dụng của bạn biết miền Workspace của người dùng đó, hãy sử dụng miền này để cung cấp gợi ý cho Google. Khi thành công, tài khoản người dùng bị giới hạn hoặc được chọn trước cho miền đã cho. Để biết thêm thông tin, hãy xem trường hd trong tài liệu của OpenID Connect.
ux_mode Không bắt buộc. Chế độ trải nghiệm người dùng để sử dụng cho quy trình ủy quyền. Theo mặc định, hệ thống sẽ mở quy trình lấy sự đồng ý trong một cửa sổ bật lên. Các giá trị hợp lệ là popupredirect.
select_account Không bắt buộc, mặc định là 'false'. Giá trị Boolean để nhắc người dùng chọn một tài khoản.
error_callback Không bắt buộc. Hàm JavaScript xử lý một số lỗi không phải OAuth, chẳng hạn như không mở được cửa sổ bật lên; hoặc đóng trước khi phản hồi OAuth được trả về.

Trường `type` (tham số) của tham số đầu vào cho biết lý do chi tiết.
  • popup_failed_to_open Không thể mở cửa sổ bật lên.
  • popup_closed Cửa sổ bật lên đã đóng trước khi phản hồi OAuth được trả về.
  • Trình giữ chỗ unknown đối với các lỗi khác.

Loại dữ liệu: CodeClient

Lớp này chỉ có một mã yêu cầu phương thức công khai, bắt đầu quy trình UX của mã OAuth 2.0.

interface CodeClient {
  requestCode(): void;
}

Loại dữ liệu: CodeResponse

Đối tượng JavaScript CodeResponse sẽ được chuyển đến phương thức callback trong trải nghiệm người dùng bật lên. Trong trải nghiệm người dùng chuyển hướng, CodeResponse sẽ được chuyển dưới dạng tham số URL.

Bảng sau đây liệt kê các thuộc tính của loại dữ liệu CodeResponse.

Thuộc tính
code Mã ủy quyền của phản hồi mã thông báo thành công.
scope Danh sách phạm vi được phân tách bằng dấu cách được người dùng phê duyệt.
state Giá trị chuỗi mà ứng dụng dùng để duy trì trạng thái giữa yêu cầu ủy quyền và phản hồi.
error Một mã lỗi ASCII.
error_description Văn bản ASCII dễ đọc của con người cung cấp thông tin bổ sung, được sử dụng để hỗ trợ nhà phát triển ứng dụng khách hiểu lỗi xảy ra.
error_uri URI xác định một trang web mà con người có thể đọc được với thông tin về lỗi, dùng để cung cấp cho nhà phát triển ứng dụng khách thông tin bổ sung về lỗi.

Phương thức: google.accounts.oauth2.initTokenClient

Phương thức initTokenClient khởi chạy và trả về một ứng dụng mã thông báo, với cấu hình trong thông số.

google.accounts.oauth2.initTokenClient(config: TokenClientConfig)

Loại dữ liệu: TokenClientConfig

Bảng sau đây liệt kê các thuộc tính của loại dữ liệu TokenClientConfig.

Thuộc tính
client_id Bắt buộc. Mã ứng dụng khách cho ứng dụng của bạn. Bạn có thể tìm thấy giá trị này trong Bảng điều khiển API.
callback Bắt buộc. Hàm JavaScript xử lý phản hồi của mã thông báo được trả về.
scope Bắt buộc. Danh sách phạm vi được phân tách bằng dấu cách xác định tài nguyên mà ứng dụng của bạn có thể thay mặt người dùng truy cập. Những giá trị này thông báo cho người dùng về màn hình xin phép mà Google hiển thị.
include_granted_scopes Không bắt buộc, mặc định là true. Cho phép các ứng dụng dùng lệnh ủy quyền gia tăng để yêu cầu quyền truy cập vào các phạm vi bổ sung trong bối cảnh. Nếu bạn đặt giá trị của tham số này thành false và yêu cầu cấp quyền đã được cấp, thì mã truy cập mới sẽ chỉ bao gồm mọi phạm vi mà scope đã yêu cầu trong TokenClientConfig này.
prompt Tùy chọn, mặc định là 'select_account'. Danh sách lời nhắc phân tách bằng dấu cách, có phân biệt chữ hoa chữ thường để hiển thị cho người dùng. Các giá trị có thể sử dụng là:
  • chuỗi trống Người dùng sẽ chỉ được nhắc trong lần đầu tiên ứng dụng yêu cầu quyền truy cập. Không thể được chỉ định với các giá trị khác.
  • "none" Không hiển thị màn hình xác thực hoặc sự đồng ý. Không được chỉ định với các giá trị khác.
  • 'consent' Nhắc người dùng đồng ý.
  • 'select_account' Nhắc người dùng chọn một tài khoản.
enable_granular_consent Không bắt buộc, mặc định là true. Nếu bạn đặt thành false, các quyền trong Tài khoản Google chi tiết hơn sẽ bị vô hiệu hoá đối với các mã ứng dụng khách OAuth được tạo trước năm 2019. Nếu bạn đặt cả enable_granular_consentenable_serial_consent, thì chỉ giá trị enable_granular_consent sẽ có hiệu lực và giá trị enable_serial_consent sẽ bị bỏ qua.

Không làm ảnh hưởng đến các mã ứng dụng khách OAuth mới vì các quyền chi tiết hơn luôn được bật cho các mã này.
enable_serial_consent Không dùng nữa, bạn nên sử dụng enable_granular_consent. Thao tác này có tác dụng tương tự như enable_granular_consent. Các ứng dụng hiện có sử dụng enable_serial_consent có thể tiếp tục làm như vậy, nhưng bạn nên cập nhật mã để sử dụng enable_granular_consent trong lần cập nhật ứng dụng tiếp theo.
login_hint Không bắt buộc. Nếu ứng dụng của bạn biết người dùng nào nên ủy quyền yêu cầu, ứng dụng có thể sử dụng thuộc tính này để cung cấp gợi ý đăng nhập cho Google. Khi thành công, lựa chọn tài khoản sẽ bị bỏ qua. Giá trị trường mã phụ địa chỉ email hoặc địa chỉ email cho người dùng mục tiêu. Để biết thêm thông tin, hãy xem trường login_hint trong tài liệu của OpenID Connect.
hd Không bắt buộc. Nếu ứng dụng của bạn biết miền Workspace của người dùng đó, hãy sử dụng miền này để cung cấp gợi ý cho Google. Khi thành công, tài khoản người dùng bị giới hạn hoặc được chọn trước cho miền đã cho. Để biết thêm thông tin, hãy xem trường hd trong tài liệu của OpenID Connect.
state Không bắt buộc. Không nên. Chỉ định mọi giá trị chuỗi mà ứng dụng dùng để duy trì trạng thái giữa yêu cầu cấp quyền và phản hồi của máy chủ uỷ quyền.
error_callback Không bắt buộc. Hàm JavaScript xử lý một số lỗi không phải OAuth, chẳng hạn như không mở được cửa sổ bật lên; hoặc đóng trước khi phản hồi OAuth được trả về.

Trường `type` (tham số) của tham số đầu vào cho biết lý do chi tiết.
  • popup_failed_to_open Không thể mở cửa sổ bật lên.
  • popup_closed Cửa sổ bật lên đã đóng trước khi phản hồi OAuth được trả về.
  • Trình giữ chỗ unknown đối với các lỗi khác.

Loại dữ liệu: TokenClient

Lớp này chỉ có một phương thức công khai requestAccessToken để bắt đầu quy trình trải nghiệm người dùng mã thông báo OAuth 2.0.

interface TokenClient {
  requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
Đối số
overrideConfig Ghi đèTokenClientConfig Không bắt buộc. Phương thức này sẽ ghi đè các cấu hình.

Loại dữ liệu: OverridableTokenClientConfig

Bảng sau đây liệt kê các thuộc tính của loại dữ liệu OverridableTokenClientConfig.

Thuộc tính
scope Không bắt buộc. Danh sách các phạm vi được phân tách bằng dấu cách xác định tài nguyên mà ứng dụng của bạn có thể truy cập thay mặt người dùng. Các giá trị này thông báo cho màn hình yêu cầu sự đồng ý mà Google hiển thị cho người dùng.
include_granted_scopes Không bắt buộc, mặc định là true. Cho phép các ứng dụng dùng lệnh ủy quyền gia tăng để yêu cầu quyền truy cập vào các phạm vi bổ sung trong bối cảnh. Nếu bạn đặt giá trị của tham số này thành false và yêu cầu cấp quyền đã được cấp, thì mã truy cập mới sẽ chỉ bao gồm mọi phạm vi mà scope đã yêu cầu trong OverridableTokenClientConfig này.
prompt Không bắt buộc. Danh sách lời nhắc phân tách bằng dấu cách, phân biệt chữ hoa chữ thường để hiển thị cho người dùng.
enable_granular_consent Không bắt buộc, mặc định là true. Nếu bạn đặt thành false, các quyền trong Tài khoản Google chi tiết hơn sẽ bị vô hiệu hoá đối với các mã ứng dụng khách OAuth được tạo trước năm 2019.Nếu bạn đặt cả enable_granular_consentenable_serial_consent, thì chỉ có giá trị enable_granular_consent mới có hiệu lực và giá trị enable_serial_consent sẽ bị bỏ qua.

Không làm ảnh hưởng đến các mã ứng dụng khách OAuth mới vì các quyền chi tiết hơn luôn được bật cho các mã này.
enable_serial_consent Không dùng nữa, bạn nên sử dụng enable_granular_consent. Thao tác này có tác dụng tương tự như enable_granular_consent. Các ứng dụng hiện có sử dụng enable_serial_consent có thể tiếp tục làm như vậy, nhưng bạn nên cập nhật mã để sử dụng enable_granular_consent trong lần cập nhật ứng dụng tiếp theo.
login_hint Không bắt buộc. Nếu ứng dụng của bạn biết người dùng nào nên ủy quyền yêu cầu, ứng dụng có thể sử dụng thuộc tính này để cung cấp gợi ý đăng nhập cho Google. Khi thành công, lựa chọn tài khoản sẽ bị bỏ qua. Giá trị trường mã phụ địa chỉ email hoặc địa chỉ email cho người dùng mục tiêu. Để biết thêm thông tin, hãy xem trường login_hint trong tài liệu của OpenID Connect.
state Không bắt buộc. Không nên. Chỉ định mọi giá trị chuỗi mà ứng dụng dùng để duy trì trạng thái giữa yêu cầu cấp quyền và phản hồi của máy chủ uỷ quyền.

Loại dữ liệu: TokenResponse

Đối tượng JavaScript TokenResponse sẽ được truyền đến phương thức gọi lại của bạn trong trải nghiệm người dùng bật lên.

Bảng sau đây liệt kê các thuộc tính của loại dữ liệu TokenResponse.

Thuộc tính
access_token Mã truy cập của một phản hồi mã thông báo thành công.
expires_in Thời gian tồn tại tính bằng giây của mã thông báo truy cập.
hd Tên miền được lưu trữ của người dùng đã đăng nhập.
prompt Giá trị nhắc được dùng trong danh sách các giá trị có thể được chỉ định bởi TokenClientConfig hoặc OverridableTokenClientConfig.
token_type Loại mã thông báo đã phát hành.
scope Danh sách phạm vi được phân tách bằng dấu cách được người dùng phê duyệt.
state Giá trị chuỗi mà ứng dụng dùng để duy trì trạng thái giữa yêu cầu ủy quyền và phản hồi.
error Một mã lỗi ASCII.
error_description Văn bản ASCII dễ đọc của con người cung cấp thông tin bổ sung, được sử dụng để hỗ trợ nhà phát triển ứng dụng hiểu lỗi xảy ra.
error_uri URI xác định một trang web mà con người có thể đọc được với thông tin về lỗi, dùng để cung cấp cho nhà phát triển ứng dụng khách thông tin bổ sung về lỗi.

Phương thức: google.accounts.oauth2.hasGrantedAllScopes

Kiểm tra xem người dùng đã cấp tất cả các phạm vi hoặc phạm vi chỉ định hay chưa.

google.accounts.oauth2.hasGrantedAllScopes(
                                            tokenResponse: TokenResponse,
                                            firstScope: string, ...restScopes: string[]
                                          ): boolean;
Đối số
tokenResponse TokenResponse Bắt buộc. Đối tượng TokenResponse.
firstScope chuỗi Bắt buộc. Phạm vi cần kiểm tra.
restScopes chuỗi[] Không bắt buộc. Các phạm vi khác cần kiểm tra.
Giá trị trả về
boolean Đúng nếu tất cả các phạm vi đều được cấp.

Phương thức: google.accounts.oauth2.hasGrantedAnyScope

Kiểm tra xem người dùng có cấp bất kỳ phạm vi hoặc phạm vi nào đã chỉ định không.

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
Đối số
tokenResponse TokenResponse Bắt buộc. Đối tượng TokenResponse.
firstScope chuỗi Bắt buộc. Phạm vi cần kiểm tra.
restScopes chuỗi[] Không bắt buộc. Các phạm vi khác cần kiểm tra.
Giá trị trả về
boolean Đúng nếu cấp một phạm vi bất kỳ.

Phương thức: google.accounts.oauth2.revoke

Phương thức revoke thu hồi tất cả các phạm vi mà người dùng đã cấp cho ứng dụng. Cần có mã thông báo truy cập hợp lệ để thu hồi quyền.

google.accounts.oauth2.revoke(accessToken: string, done: () => void): void;
Đối số
accessToken chuỗi Bắt buộc. Mã thông báo truy cập hợp lệ.
callback hàm Không bắt buộc. RevocationResponse.

Loại dữ liệu: RevocationResponse

Đối tượng JavaScript RevocationResponse sẽ được truyền vào phương thức gọi lại của bạn.

Bảng sau đây liệt kê các thuộc tính của loại dữ liệu RevocationResponse.

Thuộc tính
successful Boolean. true đã thành công, false khi không thực hiện được.
error Chuỗi. Không xác định được khi thành công. Một mã lỗi ASCII. Điều này bao gồm nhưng không chỉ gồm mã lỗi OAuth 2.0 chuẩn. Các lỗi phổ biến đối với phương thức revoke:
  • invalid_token – Mã thông báo đã hết hạn hoặc bị thu hồi trước khi phương thức revoke được gọi. Trong hầu hết trường hợp, bạn có thể coi khoản trợ cấp liên kết với accessToken bị thu hồi.
  • invalid_request – Không thể huỷ bỏ mã thông báo. Bạn phải đảm bảo rằng accessToken là thông tin đăng nhập Google OAuth 2.0 hợp lệ.
error_description Chuỗi. Không xác định được khi thành công. Văn bản ASCII mà con người có thể đọc được sẽ cung cấp thêm thông tin về thuộc tính error. Nhà phát triển có thể sử dụng thông tin này để hiểu rõ hơn về lỗi đã xảy ra. Chuỗi error_description chỉ có bằng tiếng Anh. Đối với các lỗi phổ biến được liệt kê trong error, error_description tương ứng:
  • invalid_token - Mã thông báo đã hết hạn hoặc bị thu hồi.
  • invalid_request – Không thể huỷ bỏ mã thông báo.