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