PublicClientApplication class

Kelas PublicClientApplication adalah objek yang diekspos oleh pustaka untuk melakukan fungsi autentikasi dan otorisasi di Aplikasi Halaman Tunggal untuk mendapatkan token JWT seperti yang dijelaskan dalam Alur Kode Otorisasi OAuth 2.0 dengan spesifikasi PKCE.

Metode

acquireTokenByCode(AuthorizationCodeRequest)

Fungsi ini menukarkan kode otorisasi (diteruskan sebagai kode) dari titik akhir token eSTS. Kode otorisasi ini harus diperoleh sisi server menggunakan klien rahasia untuk memperoleh spa_code. API ini tidak ditambahkan untuk akuisisi dan penukaran kode otorisasi normal.

Penukaran kode otorisasi ini tidak akan memerlukan PKCE, karena diperoleh oleh klien rahasia.

acquireTokenPopup(PopupRequest)

Gunakan saat Anda ingin mendapatkan access_token untuk API Anda melalui membuka jendela popup di browser pengguna

acquireTokenRedirect(RedirectRequest)

Gunakan saat Anda ingin mendapatkan access_token untuk API Anda dengan mengalihkan jendela browser pengguna ke titik akhir otorisasi. Fungsi ini mengalihkan halaman, sehingga kode apa pun yang mengikuti fungsi ini tidak akan dijalankan.

PENTING: TIDAK disarankan untuk memiliki kode yang bergantung pada resolusi Janji. Fungsi ini akan menavigasi jauh dari jendela browser saat ini. Saat ini mengembalikan Promise untuk mencerminkan sifat asinkron dari kode yang berjalan dalam fungsi ini.

acquireTokenSilent(SilentRequest)

Secara diam-diam memperoleh token akses untuk serangkaian cakupan tertentu. Mengembalikan janji pemrosesan saat ini jika permintaan paralel dibuat.

addEventCallback(EventCallbackFunction, EventType[])

Menambahkan panggilan balik peristiwa ke array

addPerformanceCallback(PerformanceCallbackFunction)

Mendaftarkan panggilan balik untuk menerima peristiwa performa.

clearCache(ClearCacheRequest)

Menghapus token dan akun dari cache browser.

createPublicClientApplication(Configuration)

Membuat StandardController dan meneruskannya ke PublicClientApplication

disableAccountStorageEvents()

Menghapus pendengar peristiwa yang memancarkan peristiwa saat akun pengguna ditambahkan atau dihapus dari localstorage di tab atau jendela browser yang berbeda

enableAccountStorageEvents()

Menambahkan pendengar peristiwa yang memancarkan peristiwa saat akun pengguna ditambahkan atau dihapus dari localstorage di tab atau jendela browser yang berbeda

getAccount(AccountFilter)

Mengembalikan akun pertama yang ditemukan di cache yang cocok dengan filter akun yang diteruskan.

getAccountByHomeId(string)

Mengembalikan akun masuk yang cocok dengan homeAccountId. (objek akun dibuat pada saat berhasil masuk) atau null ketika tidak ada akun yang cocok yang ditemukan

getAccountByLocalId(string)

Mengembalikan akun masuk yang cocok dengan localAccountId. (objek akun dibuat pada saat berhasil masuk) atau null ketika tidak ada akun yang cocok yang ditemukan

getAccountByUsername(string)

Mengembalikan nama pengguna pencocokan akun yang masuk. (objek akun dibuat pada saat berhasil masuk) atau null ketika tidak ada akun yang cocok yang ditemukan. API ini disediakan untuk kenyamanan tetapi getAccountById harus digunakan untuk keandalan terbaik

getActiveAccount()

Mendapatkan akun yang saat ini aktif

getAllAccounts(AccountFilter)

Mengembalikan semua akun dalam cache yang cocok dengan filter opsional. Jika tidak ada filter yang disediakan, semua akun dikembalikan.

getLogger()

Mengembalikan instans pencatat

getTokenCache()

Mendapatkan cache token untuk aplikasi.

handleRedirectPromise(string)

Fungsi penanganan aktivitas yang memungkinkan pengguna untuk mengaktifkan peristiwa setelah objek PublicClientApplication dimuat selama alur pengalihan. Ini harus dipanggil pada semua pemuatan halaman yang terlibat dalam alur autentikasi pengalihan.

hydrateCache(AuthenticationResult, PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

Menghidrasi cache dengan token dan akun di objek AuthenticationResult

initialize(InitializeApplicationRequest)

Fungsi initializer untuk melakukan tugas startup asinkron seperti menyambungkan ke ekstensi WAM

initializeWrapperLibrary(WrapperSKU, string)

Dipanggil oleh pustaka pembungkus (Angular &React) untuk mengatur SKU dan Versi yang diteruskan ke telemetri, pencatat, dll.

loginPopup(PopupRequest)

Gunakan saat memulai proses masuk melalui membuka jendela popup di browser pengguna

loginRedirect(RedirectRequest)

Gunakan saat memulai proses masuk dengan mengalihkan browser pengguna ke titik akhir otorisasi. Fungsi ini mengalihkan halaman, sehingga kode apa pun yang mengikuti fungsi ini tidak akan dijalankan.

PENTING: TIDAK disarankan untuk memiliki kode yang bergantung pada resolusi Janji. Fungsi ini akan menavigasi jauh dari jendela browser saat ini. Saat ini mengembalikan Promise untuk mencerminkan sifat asinkron dari kode yang berjalan dalam fungsi ini.

logout(EndSessionRequest)

Fungsi keluar yang tidak digunakan lagi. Gunakan logoutRedirect atau logoutPopup sebagai gantinya

logoutPopup(EndSessionPopupRequest)

Menghapus cache lokal untuk pengguna saat ini lalu membuka jendela popup yang meminta pengguna untuk keluar dari server

logoutRedirect(EndSessionRequest)

Gunakan untuk keluar dari pengguna saat ini, dan alihkan pengguna ke postLogoutRedirectUri. Perilaku default adalah mengalihkan pengguna ke window.location.href.

removeEventCallback(string)

Menghapus panggilan balik dengan id yang disediakan dari array panggilan balik

removePerformanceCallback(string)

Menghapus panggilan balik yang terdaftar dengan addPerformanceCallback.

setActiveAccount(null | AccountInfo)

Mengatur akun yang akan digunakan sebagai akun aktif. Jika tidak ada akun yang diteruskan ke API acquireToken, maka MSAL akan menggunakan akun aktif ini.

setLogger(Logger)

Mengganti kumpulan pencatat default dalam konfigurasi dengan Pencatat baru dengan konfigurasi baru

setNavigationClient(INavigationClient)

Mengatur klien navigasi

ssoSilent(Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

Fungsi ini menggunakan iframe tersembunyi untuk mengambil kode otorisasi dari eSTS. Ada kasus di mana ini mungkin tidak berfungsi:

  • Browser apa pun yang menggunakan bentuk Pencegahan Pelacakan Cerdas
  • Jika tidak ada sesi yang ditetapkan dengan layanan

Dalam kasus ini, permintaan harus dilakukan di dalam popup atau pengalihan bingkai penuh.

Untuk kasus di mana interaksi diperlukan, Anda tidak dapat mengirim permintaan dengan prompt=none.

Jika token refresh Anda telah kedaluwarsa, Anda dapat menggunakan fungsi ini untuk mengambil sekumpulan token baru secara diam-diam selama sesi Anda di server masih ada.

Detail Konstruktor

PublicClientApplication(Configuration, IController)

new PublicClientApplication(configuration: Configuration, controller?: IController)

Parameter

configuration
Configuration

Objek untuk instans MSAL PublicClientApplication

controller
IController

Detail Metode

acquireTokenByCode(AuthorizationCodeRequest)

Fungsi ini menukarkan kode otorisasi (diteruskan sebagai kode) dari titik akhir token eSTS. Kode otorisasi ini harus diperoleh sisi server menggunakan klien rahasia untuk memperoleh spa_code. API ini tidak ditambahkan untuk akuisisi dan penukaran kode otorisasi normal.

Penukaran kode otorisasi ini tidak akan memerlukan PKCE, karena diperoleh oleh klien rahasia.

function acquireTokenByCode(request: AuthorizationCodeRequest): Promise<AuthenticationResult>

Parameter

Mengembalikan

Janji yang terpenuhi ketika fungsi ini telah selesai, atau ditolak jika kesalahan dimunculkan.

acquireTokenPopup(PopupRequest)

Gunakan saat Anda ingin mendapatkan access_token untuk API Anda melalui membuka jendela popup di browser pengguna

function acquireTokenPopup(request: PopupRequest): Promise<AuthenticationResult>

Parameter

request
PopupRequest

Mengembalikan

Janji yang terpenuhi ketika fungsi ini telah selesai, atau ditolak jika kesalahan dimunculkan.

acquireTokenRedirect(RedirectRequest)

Gunakan saat Anda ingin mendapatkan access_token untuk API Anda dengan mengalihkan jendela browser pengguna ke titik akhir otorisasi. Fungsi ini mengalihkan halaman, sehingga kode apa pun yang mengikuti fungsi ini tidak akan dijalankan.

PENTING: TIDAK disarankan untuk memiliki kode yang bergantung pada resolusi Janji. Fungsi ini akan menavigasi jauh dari jendela browser saat ini. Saat ini mengembalikan Promise untuk mencerminkan sifat asinkron dari kode yang berjalan dalam fungsi ini.

function acquireTokenRedirect(request: RedirectRequest): Promise<void>

Parameter

request
RedirectRequest

Mengembalikan

Promise<void>

acquireTokenSilent(SilentRequest)

Secara diam-diam memperoleh token akses untuk serangkaian cakupan tertentu. Mengembalikan janji pemrosesan saat ini jika permintaan paralel dibuat.

function acquireTokenSilent(silentRequest: SilentRequest): Promise<AuthenticationResult>

Parameter

silentRequest
SilentRequest

Mengembalikan

  • janji yang terpenuhi ketika fungsi ini telah selesai, atau ditolak jika kesalahan dimunculkan. Mengembalikan objek AuthenticationResult

addEventCallback(EventCallbackFunction, EventType[])

Menambahkan panggilan balik peristiwa ke array

function addEventCallback(callback: EventCallbackFunction, eventTypes?: EventType[]): null | string

Parameter

eventTypes

EventType[]

Mengembalikan

null | string

addPerformanceCallback(PerformanceCallbackFunction)

Mendaftarkan panggilan balik untuk menerima peristiwa performa.

function addPerformanceCallback(callback: PerformanceCallbackFunction): string

Parameter

Mengembalikan

string

clearCache(ClearCacheRequest)

Menghapus token dan akun dari cache browser.

function clearCache(logoutRequest?: ClearCacheRequest): Promise<void>

Parameter

logoutRequest
ClearCacheRequest

Mengembalikan

Promise<void>

createPublicClientApplication(Configuration)

Membuat StandardController dan meneruskannya ke PublicClientApplication

static function createPublicClientApplication(configuration: Configuration): Promise<IPublicClientApplication>

Parameter

configuration
Configuration

{Configuration}

Mengembalikan

disableAccountStorageEvents()

Menghapus pendengar peristiwa yang memancarkan peristiwa saat akun pengguna ditambahkan atau dihapus dari localstorage di tab atau jendela browser yang berbeda

function disableAccountStorageEvents()

enableAccountStorageEvents()

Menambahkan pendengar peristiwa yang memancarkan peristiwa saat akun pengguna ditambahkan atau dihapus dari localstorage di tab atau jendela browser yang berbeda

function enableAccountStorageEvents()

getAccount(AccountFilter)

Mengembalikan akun pertama yang ditemukan di cache yang cocok dengan filter akun yang diteruskan.

function getAccount(accountFilter: AccountFilter): null | AccountInfo

Parameter

accountFilter
AccountFilter

Mengembalikan

null | AccountInfo

Akun pertama yang ditemukan di cache yang cocok dengan filter yang disediakan atau null jika tidak ada akun yang dapat ditemukan.

getAccountByHomeId(string)

Peringatan

API ini sudah tidak digunakan lagi.

  • Use getAccount instead

Mengembalikan akun masuk yang cocok dengan homeAccountId. (objek akun dibuat pada saat berhasil masuk) atau null ketika tidak ada akun yang cocok yang ditemukan

function getAccountByHomeId(homeAccountId: string): null | AccountInfo

Parameter

homeAccountId

string

Mengembalikan

null | AccountInfo

Objek akun yang disimpan di MSAL

getAccountByLocalId(string)

Peringatan

API ini sudah tidak digunakan lagi.

  • Use getAccount instead

Mengembalikan akun masuk yang cocok dengan localAccountId. (objek akun dibuat pada saat berhasil masuk) atau null ketika tidak ada akun yang cocok yang ditemukan

function getAccountByLocalId(localId: string): null | AccountInfo

Parameter

localId

string

Mengembalikan

null | AccountInfo

Objek akun yang disimpan di MSAL

getAccountByUsername(string)

Peringatan

API ini sudah tidak digunakan lagi.

  • Use getAccount instead

Mengembalikan nama pengguna pencocokan akun yang masuk. (objek akun dibuat pada saat berhasil masuk) atau null ketika tidak ada akun yang cocok yang ditemukan. API ini disediakan untuk kenyamanan tetapi getAccountById harus digunakan untuk keandalan terbaik

function getAccountByUsername(userName: string): null | AccountInfo

Parameter

userName

string

Mengembalikan

null | AccountInfo

Objek akun yang disimpan di MSAL

getActiveAccount()

Mendapatkan akun yang saat ini aktif

function getActiveAccount(): null | AccountInfo

Mengembalikan

null | AccountInfo

getAllAccounts(AccountFilter)

Mengembalikan semua akun dalam cache yang cocok dengan filter opsional. Jika tidak ada filter yang disediakan, semua akun dikembalikan.

function getAllAccounts(accountFilter?: AccountFilter): AccountInfo[]

Parameter

accountFilter
AccountFilter

Filter (Opsional) untuk mempersempit akun yang dikembalikan

Mengembalikan

Array objek AccountInfo dalam cache

getLogger()

Mengembalikan instans pencatat

function getLogger(): Logger

Mengembalikan

getTokenCache()

Mendapatkan cache token untuk aplikasi.

function getTokenCache(): ITokenCache

Mengembalikan

handleRedirectPromise(string)

Fungsi penanganan aktivitas yang memungkinkan pengguna untuk mengaktifkan peristiwa setelah objek PublicClientApplication dimuat selama alur pengalihan. Ini harus dipanggil pada semua pemuatan halaman yang terlibat dalam alur autentikasi pengalihan.

function handleRedirectPromise(hash?: string): Promise<null | AuthenticationResult>

Parameter

hash

string

Hash untuk diproses. Default ke nilai window.location.hash saat ini. Hanya perlu disediakan secara eksplisit jika respons yang akan ditangani tidak terkandung dalam nilai saat ini.

Mengembalikan

Promise<null | AuthenticationResult>

Respons token atau null. Jika nilai yang dikembalikan null, maka tidak ada pengalihan autentikasi yang terdeteksi.

hydrateCache(AuthenticationResult, PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

Menghidrasi cache dengan token dan akun di objek AuthenticationResult

function hydrateCache(result: AuthenticationResult, request: PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>): Promise<void>

Parameter

request

PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>

Objek permintaan yang digunakan untuk mendapatkan AuthenticationResult

Mengembalikan

Promise<void>

initialize(InitializeApplicationRequest)

Fungsi initializer untuk melakukan tugas startup asinkron seperti menyambungkan ke ekstensi WAM

function initialize(request?: InitializeApplicationRequest): Promise<void>

Parameter

request
InitializeApplicationRequest

{? InitializeApplicationRequest}

Mengembalikan

Promise<void>

initializeWrapperLibrary(WrapperSKU, string)

Dipanggil oleh pustaka pembungkus (Angular &React) untuk mengatur SKU dan Versi yang diteruskan ke telemetri, pencatat, dll.

function initializeWrapperLibrary(sku: WrapperSKU, version: string)

Parameter

version

string

loginPopup(PopupRequest)

Gunakan saat memulai proses masuk melalui membuka jendela popup di browser pengguna

function loginPopup(request?: PopupRequest): Promise<AuthenticationResult>

Parameter

request
PopupRequest

Mengembalikan

Janji yang terpenuhi ketika fungsi ini telah selesai, atau ditolak jika kesalahan dimunculkan.

loginRedirect(RedirectRequest)

Gunakan saat memulai proses masuk dengan mengalihkan browser pengguna ke titik akhir otorisasi. Fungsi ini mengalihkan halaman, sehingga kode apa pun yang mengikuti fungsi ini tidak akan dijalankan.

PENTING: TIDAK disarankan untuk memiliki kode yang bergantung pada resolusi Janji. Fungsi ini akan menavigasi jauh dari jendela browser saat ini. Saat ini mengembalikan Promise untuk mencerminkan sifat asinkron dari kode yang berjalan dalam fungsi ini.

function loginRedirect(request?: RedirectRequest): Promise<void>

Parameter

request
RedirectRequest

Mengembalikan

Promise<void>

logout(EndSessionRequest)

Peringatan

API ini sudah tidak digunakan lagi.

Fungsi keluar yang tidak digunakan lagi. Gunakan logoutRedirect atau logoutPopup sebagai gantinya

function logout(logoutRequest?: EndSessionRequest): Promise<void>

Parameter

logoutRequest
EndSessionRequest

Mengembalikan

Promise<void>

logoutPopup(EndSessionPopupRequest)

Menghapus cache lokal untuk pengguna saat ini lalu membuka jendela popup yang meminta pengguna untuk keluar dari server

function logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise<void>

Parameter

logoutRequest
EndSessionPopupRequest

Mengembalikan

Promise<void>

logoutRedirect(EndSessionRequest)

Gunakan untuk keluar dari pengguna saat ini, dan alihkan pengguna ke postLogoutRedirectUri. Perilaku default adalah mengalihkan pengguna ke window.location.href.

function logoutRedirect(logoutRequest?: EndSessionRequest): Promise<void>

Parameter

logoutRequest
EndSessionRequest

Mengembalikan

Promise<void>

removeEventCallback(string)

Menghapus panggilan balik dengan id yang disediakan dari array panggilan balik

function removeEventCallback(callbackId: string)

Parameter

callbackId

string

removePerformanceCallback(string)

Menghapus panggilan balik yang terdaftar dengan addPerformanceCallback.

function removePerformanceCallback(callbackId: string): boolean

Parameter

callbackId

string

Mengembalikan

boolean

setActiveAccount(null | AccountInfo)

Mengatur akun yang akan digunakan sebagai akun aktif. Jika tidak ada akun yang diteruskan ke API acquireToken, maka MSAL akan menggunakan akun aktif ini.

function setActiveAccount(account: null | AccountInfo)

Parameter

account

null | AccountInfo

setLogger(Logger)

Mengganti kumpulan pencatat default dalam konfigurasi dengan Pencatat baru dengan konfigurasi baru

function setLogger(logger: Logger)

Parameter

logger
Logger

Instans pencatat

setNavigationClient(INavigationClient)

Mengatur klien navigasi

function setNavigationClient(navigationClient: INavigationClient)

Parameter

navigationClient
INavigationClient

ssoSilent(Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

Fungsi ini menggunakan iframe tersembunyi untuk mengambil kode otorisasi dari eSTS. Ada kasus di mana ini mungkin tidak berfungsi:

  • Browser apa pun yang menggunakan bentuk Pencegahan Pelacakan Cerdas
  • Jika tidak ada sesi yang ditetapkan dengan layanan

Dalam kasus ini, permintaan harus dilakukan di dalam popup atau pengalihan bingkai penuh.

Untuk kasus di mana interaksi diperlukan, Anda tidak dapat mengirim permintaan dengan prompt=none.

Jika token refresh Anda telah kedaluwarsa, Anda dapat menggunakan fungsi ini untuk mengambil sekumpulan token baru secara diam-diam selama sesi Anda di server masih ada.

function ssoSilent(request: Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>): Promise<AuthenticationResult>

Parameter

request

Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>

SsoSilentRequest

Mengembalikan

Janji yang terpenuhi ketika fungsi ini telah selesai, atau ditolak jika kesalahan dimunculkan.