Mô tả
Sử dụng API chrome.identity
để nhận mã truy cập OAuth2.
Quyền
identity
Loại
AccountInfo
Thuộc tính
-
id
chuỗi
Giá trị nhận dạng riêng biệt của tài khoản. Mã nhận dạng này sẽ không thay đổi trong suốt thời gian tồn tại của tài khoản.
AccountStatus
Enum
"SYNC"
Cho biết rằng tính năng Đồng bộ hoá được bật cho tài khoản chính.
"ANY"
Chỉ định sự tồn tại của tài khoản chính (nếu có).
GetAuthTokenResult
Thuộc tính
-
grantedScopes
string[] không bắt buộc
Danh sách các phạm vi OAuth2 được cấp cho tiện ích.
-
mã thông báo
chuỗi không bắt buộc
Mã thông báo cụ thể liên kết với yêu cầu.
InvalidTokenDetails
Thuộc tính
-
mã thông báo
chuỗi
Mã thông báo cụ thể cần xoá khỏi bộ nhớ đệm.
ProfileDetails
Thuộc tính
-
accountStatus
AccountStatus không bắt buộc
Trạng thái của tài khoản chính đã đăng nhập vào một hồ sơ mà
ProfileUserInfo
sẽ được trả về. Mặc định là trạng thái tài khoảnSYNC
.
ProfileUserInfo
Thuộc tính
-
email
chuỗi
Địa chỉ email của tài khoản người dùng đã đăng nhập vào hồ sơ hiện tại. Rỗng nếu người dùng chưa đăng nhập hoặc bạn chưa chỉ định quyền
identity.email
trong tệp kê khai. -
id
chuỗi
Giá trị nhận dạng riêng biệt của tài khoản. Mã nhận dạng này sẽ không thay đổi trong suốt thời gian tồn tại của tài khoản. Trống nếu người dùng chưa đăng nhập hoặc (trong M41 trở lên) quyền
identity.email
trong tệp kê khai không được chỉ định.
TokenDetails
Thuộc tính
-
tài khoản
AccountInfo không bắt buộc
Mã tài khoản có mã thông báo cần được trả về. Nếu không được chỉ định, hàm sẽ sử dụng một tài khoản trong hồ sơ Chrome: Tài khoản đồng bộ hoá (nếu có) hoặc Tài khoản Google trên web đầu tiên.
-
enableGranularPermissions
boolean không bắt buộc
Chrome 87 trở lênCờ
enableGranularPermissions
cho phép các tiện ích chọn sử dụng sớm màn hình đồng ý cấp quyền ở cấp độ chi tiết, trong đó các quyền được yêu cầu sẽ được cấp hoặc từ chối riêng lẻ. -
tương tác
boolean không bắt buộc
Để tìm nạp mã thông báo, người dùng có thể phải đăng nhập vào Chrome hoặc phê duyệt các phạm vi mà ứng dụng yêu cầu. Nếu cờ tương tác là
true
,getAuthToken
sẽ nhắc người dùng khi cần. Khi cờ làfalse
hoặc bị bỏ qua,getAuthToken
sẽ trả về lỗi bất cứ khi nào cần có lời nhắc. -
các phạm vi
string[] không bắt buộc
Danh sách các phạm vi OAuth2 cần yêu cầu.
Khi trường
scopes
xuất hiện, trường này sẽ ghi đè danh sách các phạm vi được chỉ định trong manifest.json.
WebAuthFlowDetails
Thuộc tính
-
abortOnLoadForNonInteractive
boolean không bắt buộc
Chrome 113 trở lênCó nên chấm dứt
launchWebAuthFlow
cho các yêu cầu không tương tác sau khi trang tải hay không. Tham số này không ảnh hưởng đến các luồng tương tác.Khi được đặt thành
true
(mặc định), luồng sẽ kết thúc ngay sau khi trang tải. Khi được đặt thànhfalse
, luồng sẽ chỉ kết thúc sau khitimeoutMsForNonInteractive
truyền. Điều này hữu ích cho những nhà cung cấp danh tính sử dụng JavaScript để thực hiện các lệnh chuyển hướng sau khi trang tải. -
tương tác
boolean không bắt buộc
Có khởi chạy quy trình uỷ quyền ở chế độ tương tác hay không.
Vì một số quy trình uỷ quyền có thể chuyển hướng ngay đến một URL kết quả, nên
launchWebAuthFlow
sẽ ẩn chế độ xem web cho đến khi thao tác điều hướng đầu tiên chuyển hướng đến URL cuối cùng hoặc hoàn tất việc tải một trang dự kiến sẽ hiển thị.Nếu cờ
interactive
làtrue
, cửa sổ sẽ xuất hiện khi quá trình tải trang hoàn tất. Nếu cờ làfalse
hoặc bị bỏ qua,launchWebAuthFlow
sẽ trả về lỗi nếu thao tác điều hướng ban đầu không hoàn tất quy trình.Đối với những luồng sử dụng JavaScript để chuyển hướng, bạn có thể đặt
abortOnLoadForNonInteractive
thànhfalse
kết hợp với việc đặttimeoutMsForNonInteractive
để trang có cơ hội thực hiện mọi lệnh chuyển hướng. -
timeoutMsForNonInteractive
number không bắt buộc
Chrome 113 trở lênTổng thời gian tối đa mà
launchWebAuthFlow
được phép chạy ở chế độ không tương tác là tính bằng mili giây. Chỉ có hiệu lực nếuinteractive
làfalse
. -
url
chuỗi
URL bắt đầu quy trình uỷ quyền.
Phương thức
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(): Promise<void>
Đặt lại trạng thái của Identity API:
- Xoá tất cả mã truy cập OAuth2 khỏi bộ nhớ đệm mã thông báo
- Xoá các lựa chọn ưu tiên về tài khoản của người dùng
- Huỷ uỷ quyền người dùng khỏi tất cả các quy trình uỷ quyền
Giá trị trả về
-
Promise<void>
Chrome 106 trở lên
getAccounts()
chrome.identity.getAccounts(): Promise<AccountInfo[]>
Truy xuất danh sách các đối tượng AccountInfo mô tả các tài khoản có trên hồ sơ.
getAccounts
chỉ được hỗ trợ trên kênh dành cho nhà phát triển.
Giá trị trả về
-
Promise<AccountInfo[]>
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
): Promise<GetAuthTokenResult>
Lấy mã truy cập OAuth2 bằng mã ứng dụng và các phạm vi được chỉ định trong phần oauth2
của manifest.json.
Identity API lưu mã truy cập vào bộ nhớ đệm, vì vậy, bạn có thể gọi getAuthToken
theo cách không tương tác bất cứ khi nào cần mã thông báo. Bộ nhớ đệm mã thông báo sẽ tự động xử lý việc hết hạn.
Để mang lại trải nghiệm tốt cho người dùng, điều quan trọng là các yêu cầu về mã thông báo tương tác phải do giao diện người dùng trong ứng dụng của bạn khởi tạo, giải thích mục đích của việc uỷ quyền. Nếu không làm như vậy, người dùng sẽ nhận được yêu cầu uỷ quyền hoặc màn hình đăng nhập Chrome (nếu họ chưa đăng nhập) mà không có bối cảnh. Đặc biệt, đừng sử dụng getAuthToken
một cách tương tác khi ứng dụng của bạn chạy lần đầu.
Lưu ý: Khi được gọi bằng một lệnh gọi lại, thay vì trả về một đối tượng, hàm này sẽ trả về hai thuộc tính dưới dạng các đối số riêng biệt được truyền đến lệnh gọi lại.
Thông số
-
chi tiết
TokenDetails không bắt buộc
Các lựa chọn về mã thông báo.
Giá trị trả về
-
Promise<GetAuthTokenResult>
Chrome 105 trở lên
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
): Promise<ProfileUserInfo>
Truy xuất địa chỉ email và mã nhận dạng gaia bị làm rối của người dùng đã đăng nhập vào một hồ sơ.
Yêu cầu quyền identity.email
trong tệp kê khai. Nếu không, sẽ trả về một kết quả trống.
API này khác với identity.getAccounts ở hai điểm. Thông tin được trả về có sẵn ở chế độ ngoại tuyến và chỉ áp dụng cho tài khoản chính của hồ sơ.
Thông số
-
chi tiết
ProfileDetails không bắt buộc
Chrome 84 trở lênTuỳ chọn hồ sơ.
Giá trị trả về
-
Promise<ProfileUserInfo>
Chrome 106 trở lên
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
): string
Tạo URL chuyển hướng để sử dụng trong launchWebAuthFlow
.
Các URL được tạo khớp với mẫu https://<app-id>.chromiumapp.org/*
.
Thông số
-
đường dẫn
chuỗi không bắt buộc
Đường dẫn được thêm vào cuối URL đã tạo.
Giá trị trả về
-
chuỗi
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
): Promise<string | undefined>
Bắt đầu một quy trình uỷ quyền tại URL đã chỉ định.
Phương thức này cho phép các luồng xác thực với nhà cung cấp danh tính không phải của Google bằng cách khởi chạy một khung hiển thị web và chuyển hướng khung hiển thị đó đến URL đầu tiên trong luồng xác thực của nhà cung cấp. Khi nhà cung cấp chuyển hướng đến một URL khớp với mẫu https://<app-id>.chromiumapp.org/*
, cửa sổ sẽ đóng và URL chuyển hướng cuối cùng sẽ được truyền đến hàm callback
.
Để mang lại trải nghiệm tốt cho người dùng, điều quan trọng là giao diện người dùng trong ứng dụng của bạn phải bắt đầu các quy trình xác thực tương tác, đồng thời giải thích mục đích của việc uỷ quyền. Nếu không làm như vậy, người dùng sẽ nhận được các yêu cầu uỷ quyền mà không có ngữ cảnh. Cụ thể, đừng chạy một quy trình xác thực tương tác khi ứng dụng của bạn chạy lần đầu.
Thông số
-
chi tiết
Các lựa chọn về quy trình WebAuth.
Giá trị trả về
-
Promise<string | undefined>
Chrome 106 trở lên
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
): Promise<void>
Xoá mã truy cập OAuth2 khỏi bộ nhớ đệm mã thông báo của Identity API.
Nếu phát hiện thấy mã truy cập không hợp lệ, bạn nên truyền mã truy cập đó đến removeCachedAuthToken để xoá mã truy cập đó khỏi bộ nhớ đệm. Sau đó, ứng dụng có thể truy xuất một mã thông báo mới bằng getAuthToken
.
Thông số
-
chi tiết
Thông tin về mã thông báo.
Giá trị trả về
-
Promise<void>
Chrome 106 trở lên
Sự kiện
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
Được kích hoạt khi trạng thái đăng nhập của một tài khoản trên hồ sơ người dùng thay đổi.
Thông số
-
callback
hàm
Tham số
callback
có dạng như sau:(account: AccountInfo, signedIn: boolean) => void
-
tài khoản
-
signedIn
boolean
-