chrome.identity

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 aktif akun.

AccountStatus

Chrome 84 dan yang lebih baru

Enum

"SYNC"
Menentukan bahwa Sinkronisasi diaktifkan untuk akun utama.

"ANY"
Menentukan keberadaan akun utama, jika ada.

GetAuthTokenResult

Chrome 105 dan yang lebih baru

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 tertentu yang harus dihapus dari cache.

ProfileDetails

Chrome 84 dan yang lebih baru

Properti

  • accountStatus

    AccountStatus opsional

    Status akun utama yang login ke profil yang ProfileUserInfo-nya harus ditampilkan. Setelan default-nya adalah status akun SYNC.

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 aktif akun. Kosong jika pengguna tidak login atau (di M41+), izin manifes identity.email tidak ditentukan.

TokenDetails

Properti

  • akun

    AccountInfo opsional

    ID akun yang tokennya harus 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 baru

    Tanda enableGranularPermissions memungkinkan ekstensi memilih untuk ikut serta lebih awal ke layar izin izin terperinci, tempat izin yang diminta diberikan atau ditolak satu per satu.

  • interaktif

    boolean opsional

    Pengambilan token mungkin mengharuskan pengguna untuk login ke Chrome, atau menyetujui cakupan yang diminta aplikasi. Jika flag interaktif adalah true, getAuthToken akan meminta pengguna sesuai kebutuhan. Jika flag ini false atau dihilangkan, getAuthToken akan menampilkan kegagalan setiap kali perintah diperlukan.

  • cakupan

    string[] opsional

    Daftar cakupan OAuth2 yang akan diminta.

    Jika ada, kolom scopes akan mengganti daftar cakupan yang ditentukan dalam manifest.json.

WebAuthFlowDetails

Properti

  • abortOnLoadForNonInteractive

    boolean opsional

    Chrome 113 dan yang lebih baru

    Menentukan apakah akan menghentikan launchWebAuthFlow untuk permintaan non-interaktif setelah halaman dimuat. Parameter ini tidak memengaruhi alur interaktif.

    Jika ditetapkan ke true (default), flow akan segera dihentikan setelah halaman dimuat. Jika ditetapkan ke false, flow hanya akan berhenti setelah timeoutMsForNonInteractive diteruskan. Hal ini berguna bagi penyedia identitas yang menggunakan JavaScript untuk melakukan pengalihan setelah halaman dimuat.

  • interaktif

    boolean opsional

    Menentukan apakah akan meluncurkan alur autentikasi dalam mode interaktif.

    Karena beberapa alur autentikasi dapat langsung dialihkan ke URL hasil, launchWebAuthFlow menyembunyikan tampilan webnya hingga navigasi pertama mengalihkan ke URL final, atau selesai memuat halaman yang ingin ditampilkan.

    Jika tanda interactive adalah true, jendela akan ditampilkan saat pemuatan halaman selesai. Jika flag ini false atau dihilangkan, launchWebAuthFlow akan ditampilkan dengan error jika navigasi awal tidak menyelesaikan alur.

    Untuk alur yang menggunakan JavaScript untuk pengalihan, abortOnLoadForNonInteractive dapat ditetapkan ke false bersama dengan setelan timeoutMsForNonInteractive agar halaman memiliki kesempatan untuk melakukan pengalihan apa pun.

  • timeoutMsForNonInteractive

    angka opsional

    Chrome 113 dan yang lebih baru

    Jumlah waktu maksimum, dalam milidetik, launchWebAuthFlow diizinkan untuk berjalan dalam mode non-interaktif secara total. Hanya berpengaruh jika interactive adalah false.

  • url

    string

    URL yang memulai alur autentikasi.

Metode

clearAllCachedAuthTokens()

Janji Chrome 87 dan yang lebih baru
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 ini:

    () => void

Hasil

  • Janji<void>

    Chrome 106 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

getAccounts()

Janji Saluran developer
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 ini:

    (accounts: AccountInfo[]) => void

Hasil

  • Promise&lt;AccountInfo[]&gt;

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

getAuthToken()

Janji
chrome.identity.getAuthToken(
  details?: TokenDetails,
  callback?: function,
)

Mendapatkan token akses OAuth2 menggunakan client ID dan cakupan yang ditentukan di bagian oauth2 pada manifest.json.

Identity API menyimpan token akses dalam memori di cache, sehingga Anda dapat memanggil getAuthToken secara noninteraktif setiap kali token diperlukan. Cache token menangani akhir masa berlaku secara otomatis.

Untuk memberikan pengalaman pengguna yang baik, permintaan token interaktif harus dimulai oleh UI di aplikasi Anda yang menjelaskan untuk apa otorisasi tersebut. Jika mereka tidak melakukannya, 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

Hasil

  • Promise&lt;GetAuthTokenResult&gt;

    Chrome 105 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

getProfileUserInfo()

Janji
chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
  callback?: function,
)

Mengambil alamat email dan ID GAIA pengguna 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 cara. Informasi yang dikembalikan tersedia secara offline, dan hanya berlaku untuk akun utama untuk profil.

Parameter

Hasil

  • Promise&lt;ProfileUserInfo&gt;

    Chrome 106 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

getRedirectURL()

chrome.identity.getRedirectURL(
  path?: string,
)

Menghasilkan URL alihan untuk digunakan di launchWebAuthFlow.

URL yang dibuat sesuai dengan pola https://<app-id>.chromiumapp.org/*.

Parameter

  • jalur

    string opsional

    Jalur yang ditambahkan ke bagian akhir URL yang dihasilkan.

Hasil

  • string

launchWebAuthFlow()

Janji
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)

Memulai alur autentikasi pada URL yang ditentukan.

Metode ini memungkinkan alur autentikasi bersama penyedia identitas non-Google dengan meluncurkan tampilan web dan membukanya di URL pertama dalam alur autentikasi penyedia. Saat 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, alur autentikasi interaktif yang penting harus dimulai oleh UI di aplikasi Anda yang menjelaskan tujuan otorisasi tersebut. Kegagalan dalam melakukannya akan menyebabkan pengguna Anda mendapatkan permintaan otorisasi tanpa konteks. Secara khusus, jangan meluncurkan alur autentikasi interaktif saat aplikasi Anda pertama kali diluncurkan.

Parameter

  • Opsi alur WebAuth.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (responseUrl?: string) => void

    • responseUrl

      string opsional

Hasil

  • Promise<string | tidak terdefinisi>

    Chrome 106 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

removeCachedAuthToken()

Janji
chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
  callback?: function,
)

Menghapus token akses OAuth2 dari cache token Identity API.

Jika token akses didapati tidak valid, token tersebut harus diteruskan ke removeCachedAuthToken untuk menghapusnya dari cache. Selanjutnya, aplikasi dapat mengambil token baru dengan getAuthToken.

Parameter

  • Informasi token.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 106 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan 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 ini:

    (account: AccountInfo, signedIn: boolean) => void