browser.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+ browser.* sejak Chrome 148

Enum

"SYNC"
Menentukan bahwa Sinkronisasi diaktifkan untuk akun utama.

"ANY"
Menentukan keberadaan akun utama, jika ada.

GetAuthTokenResult

Chrome 105+ browser.* sejak Chrome 148

Properti

  • grantedScopes

    string[] opsional

    Daftar cakupan OAuth2 yang diberikan ke ekstensi.

  • token

    string opsional

    Token tertentu yang terkait dengan permintaan.

InvalidTokenDetails

Properti

  • token

    string

    Token tertentu yang harus dihapus dari cache.

ProfileDetails

Chrome 84+ browser.* sejak Chrome 148

Properti

  • accountStatus

    AccountStatus opsional

    Status akun utama yang login ke profil yang ProfileUserInfo-nya harus ditampilkan. 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+ browser.* sejak Chrome 148

    Flag enableGranularPermissions memungkinkan ekstensi memilih ikut serta lebih awal ke layar izin terperinci, tempat 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 tanda interaktif adalah true, getAuthToken akan meminta pengguna sesuai kebutuhan. Jika flag adalah 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 menggantikan daftar cakupan yang ditentukan di manifest.json.

WebAuthFlowDetails

Properti

  • abortOnLoadForNonInteractive

    boolean opsional

    Chrome 113+ browser.* sejak Chrome 148

    Apakah akan menghentikan launchWebAuthFlow untuk permintaan non-interaktif setelah pemuatan halaman. Parameter ini tidak memengaruhi alur interaktif.

    Jika ditetapkan ke true (default), alur akan langsung dihentikan setelah pemuatan halaman. Jika disetel ke false, alur hanya akan dihentikan setelah timeoutMsForNonInteractive berlalu. Hal ini berguna untuk penyedia identitas yang menggunakan JavaScript untuk melakukan pengalihan setelah pemuatan halaman.

  • interaktif

    boolean opsional

    Apakah akan meluncurkan alur autentikasi dalam mode interaktif.

    Karena beberapa alur autentikasi mungkin langsung mengalihkan ke URL hasil, launchWebAuthFlow menyembunyikan tampilan webnya hingga navigasi pertama mengalihkan ke URL akhir, atau selesai memuat halaman yang dimaksudkan untuk ditampilkan.

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

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

  • timeoutMsForNonInteractive

    number opsional

    Chrome 113+ browser.* sejak Chrome 148

    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()

Chrome 87+ browser.* sejak Chrome 148
browser.identity.clearAllCachedAuthTokens(): Promise<void>

Mereset status Identity API:

  • Menghapus semua token akses OAuth2 dari cache token
  • Menghapus preferensi akun pengguna
  • Membatalkan otorisasi pengguna dari semua alur autentikasi

Hasil

  • Promise<void>

    Chrome 106+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve saat status telah dihapus.

getAccounts()

Saluran Dev
browser.identity.getAccounts(): Promise<AccountInfo[]>

Mengambil daftar objek AccountInfo yang menjelaskan akun yang ada di profil.

getAccounts hanya didukung di saluran dev.

Hasil

getAuthToken()

browser.identity.getAuthToken(
  details?: TokenDetails,
)
: Promise<GetAuthTokenResult>

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

Identity API meng-cache token akses dalam memori, sehingga Anda dapat memanggil getAuthToken secara non-interaktif setiap kali token diperlukan. Cache token otomatis menangani masa berlaku.

Untuk pengalaman pengguna yang baik, penting agar permintaan token interaktif dimulai oleh UI di aplikasi Anda yang menjelaskan tujuan otorisasi tersebut. Jika tidak, 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 tidak akan menampilkan objek, melainkan menampilkan dua properti sebagai argumen terpisah yang diteruskan ke callback.

Parameter

Hasil

  • Chrome 105+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve dengan token akses OAuth2 seperti yang ditentukan oleh manifes, atau ditolak jika terjadi error. Parameter grantedScopes diisi sejak Chrome 87. Jika tersedia, parameter ini berisi daftar cakupan yang diberikan yang sesuai dengan token yang ditampilkan.

getProfileUserInfo()

browser.identity.getProfileUserInfo(
  details?: ProfileDetails,
)
: Promise<ProfileUserInfo>

Mengambil alamat email dan ID gaia yang di-obfuscate milik pengguna yang login ke profil.

Memerlukan izin manifes identity.email. Jika tidak, hasil kosong akan ditampilkan.

API ini berbeda dengan identity.getAccounts dalam dua hal. Informasi yang ditampilkan tersedia secara offline, dan hanya berlaku untuk akun utama profil.

Parameter

  • detail

    ProfileDetails opsional

    Chrome 84+ browser.* sejak Chrome 148

    Opsi profil.

Hasil

  • Chrome 106+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve dengan ProfileUserInfo akun Chrome utama, atau ProfileUserInfo kosong jika akun dengan details yang diberikan tidak ada.

getRedirectURL()

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

Membuat URL pengalihan untuk digunakan di launchWebAuthFlow.

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

Parameter

  • jalur

    string opsional

    Jalur yang ditambahkan ke bagian akhir URL yang dihasilkan.

Hasil

  • string

launchWebAuthFlow()

browser.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
)
: Promise<string | undefined>

Memulai alur autentikasi di URL yang ditentukan.

Metode ini mengaktifkan alur autentikasi dengan penyedia identitas non-Google dengan meluncurkan tampilan web dan mengarahkannya ke 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 pengalihan akhir akan diteruskan ke fungsi callback.

Untuk memberikan pengalaman pengguna yang baik, penting agar alur autentikasi interaktif dimulai oleh UI di aplikasi Anda yang menjelaskan tujuan otorisasi tersebut. Jika tidak melakukannya, pengguna Anda akan mendapatkan permintaan otorisasi tanpa konteks. Secara khusus, jangan meluncurkan alur autentikasi interaktif saat aplikasi Anda pertama kali diluncurkan.

Parameter

Hasil

  • Promise<string | undefined>

    Chrome 106+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve dengan URL yang dialihkan kembali ke aplikasi Anda.

removeCachedAuthToken()

browser.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
)
: Promise<void>

Menghapus token akses OAuth2 dari cache token Identity API.

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

Parameter

Hasil

  • Promise<void>

    Chrome 106+ browser.* sejak Chrome 148

    Menampilkan Promise yang di-resolve saat token telah dihapus dari cache.

Acara

onSignInChanged

browser.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