Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
MSAL Angular v2 menghadirkan pembungkus Angular kami agar selaras dengan versi terbaru MSAL Common, serta dengan dukungan bawaan untuk Angular versi modern (9 - 12) dan rxjs (6).
Panduan ini akan menunjukkan perubahan yang diperlukan untuk memigrasikan aplikasi yang ada dari @azure/msal-angular v1 ke v2.
Dokumentasi khusus untuk MSAL Angular v2 dapat ditemukan di sini.
Installation
Perubahan mendasar pertama pada MSAL Angular v2 adalah bahwa paket ini tidak lagi menggunakan paket inti msal, tetapi membungkus paket @azure/msal-browser sebagai dependensi peer.
Pertama, hapus instalan versi MSAL sebelumnya yang saat ini sedang digunakan.
Untuk menginstal @azure/msal-browser dan @azure/msal-angular:
npm install @azure/msal-browser @azure/msal-angular@latest
Memutus perubahan dalam @azure/msal-browser@2
@azure/msal-browser@2 mencakup sejumlah perubahan yang bersifat breaking dibandingkan dengan msal@1.x. Banyak dari ini harus diabstraksi jauh dari aplikasi Anda, tetapi ada beberapa yang akan memerlukan perubahan kode.
MsalModule.forRoot kini menerima tiga argumen
Sebelumnya, @azure/msal-angular menerima dua objek konfigurasi melalui MsalModule.forRoot(), satu untuk pustaka inti, dan satu untuk @azure/msal-angular. Ini telah diubah agar menerima sebuah instans MSAL, serta dua objek konfigurasi yang khusus untuk Angular.
- Argumen pertama adalah instans MSAL. Ini dapat disediakan sebagai fungsi pabrik yang membuat instance MSAL, atau dengan meneruskan instance MSAL beserta konfigurasinya.
- Argumen kedua adalah sebuah objek
MsalGuardConfiguration, yang menentukaninteractionTypesertaauthRequestopsional danloginFailedRouteopsional. - Argumen ketiga adalah
MsalInterceptorConfigurationobjek, yang berisi nilai untukinteractionType, ,protectedResourceMapdan opsionalauthRequest.unprotectedResourceMapsudah tidak digunakan lagi.
Lihat dokumen konfigurasi dan dokumen khusus kami untuk MsalInterceptor dan MsalGuard untuk informasi selengkapnya. Anda juga dapat melihat sampel kami yang diperbarui untuk contoh cara meneruskan objek konfigurasi ini.
Logger
-
loggersekarang diatur melalui konfigurasi untuk instans MSAL, dalamsystem.loggerOptions, yang mencakuploggerCallback,piiLoggingEnabled, danlogLevel, alih-alih instans darilogger.loggerjuga dapat diatur secara dinamis dengan menggunakanMsalService.setLogger(). Lihatlogger documentationuntuk informasi selengkapnya dan contoh untuk cara penggunaan.
Perubahan API
- Metode
acquireTokendanloginsekarang mengambil objek permintaan yang berbeda sebagai parameter. Lihat msal.service.ts untuk detailnya. - Event broadcast sekarang menghasilkan objek
EventMessage, bukan lagi hanya string. Lihat sampel Angular untuk contoh cara mengimplementasikan. - Aplikasi yang menggunakan metode
Redirectharus mengimporMsalRedirectComponentdan melakukan bootstrap bersamaAppComponentdi app.component.ts, yang akan menangani semua pengalihan. Aplikasi yang tidak dapat melakukan hal ini harus menerapkan metodehandleRedirectObservable(dan menjalankannya pada setiap pemuatan halaman), yang akan menangani hasil operasi pengalihan. Lihat dokumentasi pengalihan untuk detail selengkapnya.
Pencegat MSAL
- Silakan lihat dokumentasi MsalInterceptor kami untuk detail lebih lanjut tentang cara mengonfigurasi
MsalInterceptorsaat ini, serta perbedaan antara v1 dan v2.
Penjaga MSAL
- Silakan lihat dokumentasi MsalGuard kami untuk detail lebih lanjut tentang cara mengonfigurasi
MsalGuardsaat ini, serta perbedaan antara v1 dan v2.
Accounts
- Kami menyarankan untuk berlangganan ke observable
inProgress$dan memfilterInteractionStatus.Nonesebelum mengambil informasi akun. Ini memastikan bahwa semua interaksi telah selesai sebelum mendapatkan informasi akun. Lihat sampel kami untuk contoh penggunaan ini. - Saat mendapatkan akun, sebaiknya gunakan
getAccountByHomeId()dangetAccountByLocalId(), tersedia pada instans MSAL.getAccount()sekaranggetAccountByUsername(), tetapi harus menjadi pilihan sekunder, karena mungkin kurang dapat diandalkan dan hanya untuk kenyamanan. -
getAllAccounts()juga tersedia pada instans MSAL. Silakan lihat dokumentasi untuk@azure/msal-browseruntuk detail lebih lanjut tentang metode akun. - Selain itu, kini Anda dapat mengambil dan menetapkan akun aktif menggunakan
getActiveAccount()dansetActiveAccount(). Lihat FAQ kami untuk informasi selengkapnya.
Angular 9+ dan rxjs@6
MSAL Angular sekarang mengharapkan bahwa aplikasi Anda dibangun dengan @angular/core@>=9, , @angular/common@>=9rxjs@6. Seperti halnya MSAL Angular v1, rxjs-compat tidak diperlukan.
Langkah-langkah:
- Instal versi Angular dan rxjs yang lebih baru:
npm install @angular/core @angular/common rxjs - Copot pemasangan
rxjs-compat(jika tidak diperlukan untuk pustaka lain):npm uninstall rxjs-compat
Sampel
Kami telah mengumpulkan aplikasi sampel dasar untuk Angular 9, 10, 11, dan 12. Sampel ini menunjukkan konfigurasi dan penggunaan dasar, dan akan ditingkatkan dan ditambahkan ke secara bertahap.
Lihat di sini untuk daftar sampel MSAL Angular v2 dan fitur yang ditunjukkan.