Deskripsi
Gunakan chrome.identity
API untuk mendapatkan token akses OAuth2.
Izin
identity
Jenis
AccountInfo
Properti
-
id
string
ID unik untuk akun. ID ini tidak akan berubah selama masa pakai akun.
AccountStatus
Enum
"SYNC"
Menentukan bahwa Sinkronisasi diaktifkan untuk akun utama.
"SALAH SATU"
Menentukan keberadaan akun utama, jika ada.
GetAuthTokenResult
Properti
-
grantedScopes
string[] opsional
Daftar cakupan OAuth2 yang diberikan ke ekstensi.
-
token
string opsional
Token spesifik yang terkait dengan permintaan.
InvalidTokenDetails
Properti
-
token
string
Token spesifik yang harus dihapus dari cache.
ProfileDetails
Properti
-
accountStatus
AccountStatus opsional
Status akun utama yang login ke profil yang
ProfileUserInfo
-nya akan ditampilkan. Default-nya adalah status akunSYNC
.
ProfileUserInfo
Properti
-
email
string
Alamat email untuk akun pengguna yang login ke profil saat ini. Kosong jika pengguna tidak login atau izin manifes
identity.email
tidak ditentukan. -
id
string
ID unik untuk akun. ID ini tidak akan berubah selama masa pakai akun. Kosong jika pengguna tidak login atau (di M41+) izin manifes
identity.email
tidak ditentukan.
TokenDetails
Properti
-
akun
AccountInfo opsional
ID akun yang tokennya akan ditampilkan. Jika tidak ditentukan, fungsi akan menggunakan akun dari profil Chrome: akun Sinkronisasi jika ada, atau akun web Google pertama.
-
enableGranularPermissions
boolean opsional
Chrome 87 dan yang lebih baruTanda
enableGranularPermissions
memungkinkan semua ekstensi untuk ikut serta lebih awal ke layar izin izin terperinci, dengan izin yang diminta diberikan atau ditolak satu per satu. -
interaktif
boolean opsional
Pengambilan token mungkin mengharuskan pengguna login ke Chrome, atau menyetujui cakupan yang diminta aplikasi. Jika flag interaktif adalah
true
,getAuthToken
akan meminta pengguna sesuai kebutuhan. Jika tandafalse
atau dihilangkan,getAuthToken
akan menampilkan kegagalan setiap kali perintah diperlukan. -
cakupan
string[] opsional
Daftar cakupan OAuth2 yang akan diminta.
Jika ada, kolom
scopes
akan menggantikan daftar cakupan yang ditentukan dalam manifest.json.
WebAuthFlowDetails
Properti
-
abortOnLoadForNonInteractive
boolean opsional
Chrome 113 dan yang lebih baruApakah akan menghentikan
launchWebAuthFlow
untuk permintaan non-interaktif setelah halaman dimuat. Parameter ini tidak memengaruhi alur interaktif.Jika ditetapkan ke
true
(default), flow akan langsung dihentikan setelah halaman dimuat. Jika ditetapkan kefalse
, flow hanya akan dihentikan setelahtimeoutMsForNonInteractive
diteruskan. Hal ini berguna bagi penyedia identitas yang menggunakan JavaScript untuk melakukan pengalihan setelah halaman dimuat. -
interaktif
boolean opsional
Apakah akan meluncurkan alur autentikasi dalam mode interaktif.
Karena beberapa alur autentikasi dapat langsung mengalihkan ke URL hasil,
launchWebAuthFlow
menyembunyikan tampilan webnya hingga navigasi pertama mengalihkan ke URL final, atau selesai memuat halaman yang dimaksudkan untuk ditampilkan.Jika tanda
interactive
adalahtrue
, jendela akan ditampilkan saat pemuatan halaman selesai. Jika flagfalse
atau dihilangkan,launchWebAuthFlow
akan menampilkan error jika navigasi awal tidak menyelesaikan alur.Untuk alur yang menggunakan JavaScript untuk pengalihan,
abortOnLoadForNonInteractive
dapat ditetapkan kefalse
bersama dengan setelantimeoutMsForNonInteractive
untuk memberi halaman kesempatan melakukan pengalihan apa pun. -
timeoutMsForNonInteractive
nomor opsional
Chrome 113 dan yang lebih baruJumlah waktu maksimum, dalam milidetik,
launchWebAuthFlow
diizinkan untuk berjalan dalam total mode non-interaktif. Hanya berpengaruh jikainteractive
adalahfalse
. -
url
string
URL yang memulai alur autentikasi.
Metode
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
)
Mereset status Identity API:
- Menghapus semua token akses OAuth2 dari cache token
- Menghapus preferensi akun pengguna
- Membatalkan otorisasi pengguna dari semua alur autentikasi
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 106+Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
)
Mengambil daftar objek AccountInfo yang menjelaskan akun yang ada di profil.
getAccounts
hanya didukung di saluran dev.
Parameter
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(accounts: AccountInfo[]) => void
-
akun
-
Hasil
-
Promise<AccountInfo[]>
Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
)
Mendapatkan token akses OAuth2 menggunakan client ID dan cakupan yang ditentukan di bagian oauth2
dari manifest.json.
Identity API menyimpan token akses di memori, sehingga Anda dapat memanggil getAuthToken
secara noninteraktif setiap kali token diperlukan. Cache token menangani masa berlaku secara otomatis.
Untuk pengalaman pengguna yang baik, permintaan token interaktif yang penting harus dimulai oleh UI di aplikasi Anda yang menjelaskan tujuan otorisasi tersebut. Jika hal ini tidak dilakukan, pengguna Anda akan mendapatkan permintaan otorisasi, atau layar login Chrome jika mereka tidak login, tanpa konteks. Secara khusus, jangan gunakan getAuthToken
secara interaktif saat aplikasi Anda pertama kali diluncurkan.
Catatan: Saat dipanggil dengan callback, fungsi ini akan menampilkan kedua properti sebagai argumen terpisah yang diteruskan ke callback, bukan menampilkan objek.
Parameter
-
detail
TokenDetails opsional
Opsi token.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(result: GetAuthTokenResult) => void
-
hasilChrome 105 dan yang lebih baru
-
Hasil
-
Promise<GetAuthTokenResult>
Chrome 105 dan yang lebih baruPromise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
)
Mengambil alamat email dan ID GAIA yang di-obfuscate dari pengguna yang login ke profil.
Memerlukan izin manifes identity.email
. Jika tidak, menampilkan hasil kosong.
API ini berbeda dari identity.getAccounts dalam dua hal. Informasi yang ditampilkan tersedia secara offline, dan hanya berlaku untuk akun utama untuk profil.
Parameter
-
detail
ProfileDetails opsional
Chrome 84 dan yang lebih baruOpsi profil.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(userInfo: ProfileUserInfo) => void
-
userInfo
-
Hasil
-
Promise<ProfileUserInfo>
Chrome 106+Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
)
Menghasilkan URL alihan untuk digunakan di launchWebAuthFlow
.
URL yang dihasilkan cocok dengan pola https://<app-id>.chromiumapp.org/*
.
Parameter
-
jalur
string opsional
Jalur yang ditambahkan ke akhir URL yang dihasilkan.
Hasil
-
string
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
callback?: function,
)
Memulai alur autentikasi pada URL yang ditentukan.
Metode ini memungkinkan alur autentikasi dengan penyedia identitas non-Google dengan meluncurkan tampilan web dan menavigasinya ke URL pertama dalam alur autentikasi penyedia. Jika penyedia mengalihkan ke URL yang cocok dengan pola https://<app-id>.chromiumapp.org/*
, jendela akan ditutup, dan URL alihan final akan diteruskan ke fungsi callback
.
Untuk pengalaman pengguna yang baik, penting agar alur autentikasi interaktif dimulai oleh UI di aplikasi Anda yang menjelaskan tujuan otorisasi. Jika hal ini tidak dilakukan, pengguna Anda akan mendapatkan permintaan otorisasi tanpa konteks. Khususnya, jangan luncurkan alur autentikasi interaktif saat aplikasi Anda pertama kali diluncurkan.
Parameter
-
detail
Opsi alur WebAuth.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:(responseUrl?: string) => void
-
responseUrl
string opsional
-
Hasil
-
Promise<string | undefined>
Chrome 106+Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
)
Menghapus token akses OAuth2 dari cache token Identity API.
Jika terbukti tidak valid, token akses harus diteruskan ke removeCachedAuthToken untuk menghapusnya dari cache. Selanjutnya, aplikasi dapat mengambil token baru dengan getAuthToken
.
Parameter
-
detail
Informasi token.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti:() => void
Hasil
-
Promise<void>
Chrome 106+Promise didukung di Manifes V3 dan yang lebih baru, tetapi callback disediakan untuk kompatibilitas mundur. Anda tidak dapat menggunakan keduanya pada panggilan fungsi yang sama. Promise di-resolve dengan jenis yang sama yang diteruskan ke callback.
Acara
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
Diaktifkan saat status login berubah untuk akun di profil pengguna.
Parameter
-
callback
fungsi
Parameter
callback
terlihat seperti:(account: AccountInfo, signedIn: boolean) => void
-
akun
-
signedIn
boolean
-